All Products
Search
Document Center

:createJob

Last Updated:Jun 28, 2025

Deskripsi metode

Membuat dan mengirimkan pekerjaan.

Deskripsi parameter

Parameter

Tipe

Diperlukan

Deskripsi

jobDescription

JobDescription

Ya

Deskripsi setiap tugas dalam pekerjaan, dan dependensi DAG antar tugas.

Catatan

Catatan: Nama paket berikut JobDescription, TaskDag, TaskDescription, dan ResourceDescription semuanya adalah com.aliyuncs.batchcompute.pojo.v20151111.

Atribut JobDescription

Metode getter dan setter tersedia untuk semua atribut.

Atribut

Tipe

Diperlukan

Deskripsi

name

String

Ya

Nama pekerjaan.

priority

int

Ya

Prioritas ditentukan oleh bilangan bulat mulai dari 0 hingga 1000. Prioritas meningkat seiring dengan nilainya.

description

String

Tidak

Deskripsi singkat pekerjaan.

dag

DAG

Tidak

Dibutuhkan ketika tipe adalah DAG. Ini mendeskripsikan setiap tugas dalam pekerjaan dan dependensi DAG antar tugas.

app

AppJobDescription

Tidak

Dibutuhkan ketika tipe adalah App. Ini mendeskripsikan parameter konfigurasi App, input, dan output.

jobFailOnInstanceFail

Boolean

Ya

Menentukan apakah pekerjaan gagal ketika instance gagal. Secara umum, nilainya adalah true.

autoRelease

Boolean

Tidak

Menentukan apakah sistem secara otomatis melepaskan (menghapus) pekerjaan setelah pekerjaan berhasil dijalankan. Nilai default: false.

type

String

Ya

Tipe pekerjaan. Saat ini, tugas hanya dapat dideskripsikan dalam bentuk grafik asiklik terarah (DAG). Nilai: DAG dan App.

notification

Notification

Tidak

Konfigurasi notifikasi. Anda dapat mengonfigurasi topik atau acara terkait pekerjaan MNS.

Atribut DAG

Metode getter dan setter tersedia untuk semua atribut.

Atribut

Tipe

Diperlukan

Deskripsi

tasks

Map

Ya

Pemetaan antara semua nama tugas dan deskripsi tugas.

dependencies

Map

Tidak

Dependensi antar tugas. Ini juga merupakan peta yang menggambarkan hubungan satu-ke-banyak, di mana "key" menunjukkan nama tugas sumber, dan "value" menunjukkan nama tugas target. Untuk informasi lebih lanjut, lihat contohnya.

Atribut TaskDescription

Metode getter dan setter tersedia untuk semua atribut.

Atribut

Tipe

Diperlukan atau tidak

Deskripsi

taskName

String

Ya

Nama tugas.

clusterId

String

Tidak

ID kluster. Anda hanya dapat memilih salah satu dari clusterId dan AutoCluster.

autoCluster

AutoCluster

Tidak

Anda hanya dapat memilih salah satu dari autoCluster dan clusterId.

parameters

Parameters

Ya

Konfigurasi terkait dengan pelaksanaan program.

inputMapping

Map

Tidak

Pemetaan dari jalur OSS ke posisi mount lokal. Semua posisi mount harus diakhiri dengan garis miring (/). Mereka dapat berada pada bucket yang sama atau berbeda, tetapi harus milik pengguna yang sama. Posisi mount adalah huruf drive dalam sistem operasi Windows, dan folder dalam sistem operasi Linux. “key” menunjukkan jalur OSS, dan “value” menunjukkan jalur mount, misalnya, “D:” atau “/home/admin/dist1”.

outMapping

Map

Tidak

Pemetaan dari jalur lokal ke jalur OSS. “key” menunjukkan jalur lokal, dan “value” menunjukkan jalur OSS.

logMapping

Map

Tidak

Pemetaan dari jalur log ke jalur OSS. “key” menunjukkan jalur lokal, dan “value” menunjukkan jalur OSS.

instanceCount

int

Ya

Jumlah instance dalam tugas. Ini adalah bilangan bulat positif.

timeout

int

Ya

Waktu eksekusi maksimum (timeout) instance dalam tugas. Nilainya berkisar dari 1 hingga 86400. Satuan adalah detik.

mounts

Mounts

Tidak

Konfigurasi mounting jaringan instance, yang dijelaskan oleh Mounts. Saat ini, mounting NAS dan OSS didukung.

maxRetryCount

int

Tidak

Jumlah maksimum percobaan ulang. Nilai default: 0

writeSupport

Boolean

Tidak

Dukungan penulisan untuk direktori yang dipasang sebagai baca-saja dalam inputMapping. Perhatikan bahwa file yang telah dipasang bersifat baca-saja dan tidak dapat ditimpa.

Atribut AutoCluster

Metode getter dan setter tersedia untuk semua atribut.

Atribut

Tipe

Diperlukan

Deskripsi

ECSImageId

String

Ya

Bisa berupa ID citra ECS atau ID citra terdaftar.

instanceType

String

Ya

Tipe instance. Tipe instance yang didukung bervariasi menurut wilayah.

resourceType

String

Ya

Tipe sumber daya. Saat ini, parameter ini hanya dapat disetel ke OnDemand, yang merupakan nilai default.

SpotStrategy

String

Ya

Strategi spot untuk instance. Ini berlaku hanya ketika ResourceType adalah Spot. Nilai: SpotWithPriceLimit (atur harga maksimum untuk instance spot) dan SpotAsPriceGo (sistem memberikan harga secara otomatis, dan nilai maksimumnya adalah harga Pay-As-You-Go).

SpotPriceLimit

Float

Tidak

Harga maksimum instance per jam. Nilainya dapat mengandung maksimal tiga desimal. Ini berlaku ketika SpotStrategy adalah SpotWithPriceLimit.

userData

Map

Tidak

Data pengguna

configs

Configs

Tidak

Konfigurasi kluster, seperti konfigurasi disk instance. Ini dijelaskan oleh [Configs].

ReserveOnFail

Bool

Tidak

Ketika tugas gagal, VM terkait tidak dilepaskan, dan biaya untuk sumber daya tersebut masih dikenakan sampai pengguna menghapus pekerjaan. Nilai default adalah False. Ini hanya digunakan dalam survei.

Atribut Parameters

Metode getter dan setter tersedia untuk semua atribut.

Atribut

Tipe

Diperlukan

Deskripsi

command

Command

Ya

Parameter baris perintah terkait dengan program pengguna.

inputMappingConfig

InputMappingConfig

Tidak

Konfigurasi layanan mounting NFS.

stdoutRedirectPath

String

Ya

Direktori OSS tempat keluaran standar dialihkan.

stderrRedirectPath

String

Ya

Direktori OSS tempat kesalahan standar dialihkan.

Atribut Command (metode getter dan setter tersedia untuk semua atribut)

Atribut

Tipe

Diperlukan

Deskripsi

commandLine

String

Ya

Menentukan perintah untuk menjalankan program pengguna.

PackagePath

String

Ya

Jalur OSS tempat program pengguna berada.

EnvVars

Map

Tidak

Variabel lingkungan yang akan dikonfigurasi saat program pengguna mulai berjalan.

Atribut InputMappingConfig

Metode getter dan setter tersedia untuk semua atribut.

Atribut

Tipe

Diperlukan

Deskripsi

lock

Boolean

Tidak

Menentukan apakah layanan mounting NFS mendukung kunci file jaringan. Jika disetel ke true, kunci file jaringan diaktifkan untuk memberikan dukungan backend untuk kunci file. Jika disetel ke false, kunci file jaringan dinonaktifkan dan kinerja akses file dapat ditingkatkan. Kunci file hanya didukung di klien NFS dan tidak akan disinkronkan ke server. Di beberapa sistem operasi, metode kunci file yang ditampilkan mungkin gagal.

locale

String

Tidak

Semua objek di OSS diberi nama menggunakan UTF-8. Parameter ini menentukan set karakter lokal yang digunakan setelah mounting. Nilai opsional termasuk GBK, GB2312-80, BIG5, ANSI, EUC-JP, EUC-TW, EUC-KR, SHIFT-JIS, dan KSC5601.

Atribut Notification

Metode getter dan setter tersedia untuk semua atribut.

Atribut

Tipe

Diperlukan

Deskripsi

topic

Topic

Tidak

Topik pesan

Atribut Topic

Metode getter dan setter tersedia untuk semua atribut.

Atribut

Tipe

Diperlukan

Deskripsi

endpoint

String

Ya

Titik akhir wilayah MNS. Formatnya adalah http://${your_user_id}.mns.${region}-internal.aliyuncs.com/. Gunakan titik akhir intranet jika memungkinkan.

name

String

Ya

Nama topik

events

List<String>

Ya

Daftar acara. Anda harus memasukkan acara terkait pekerjaan.

Atribut AppJobDescription

Atribut

Tipe

Diperlukan

Deskripsi

appName

String

Ya

Nama aplikasi. Set karakter yang valid adalah [a-zA-Z0-9_-:]. Panjangnya tidak boleh melebihi 1024 karakter. Dua format tersedia untuk nama aplikasi, dan digunakan untuk mengakses aplikasi publik dan aplikasi pribadi Anda masing-masing. Misalnya, untuk mengakses aplikasi publik "App1", atur appName ke Public:App1. "Public" dapat dikecualikan, yaitu nama aplikasi berubah menjadi ":App1". Jika App1 adalah aplikasi pribadi Anda, langsung atur appName ke App1.

inputs

Map

Ya

Parameter input pekerjaan. “Map” harus bernilai antara 0 dan 50. “Key” harus berupa nama parameter yang didefinisikan dalam InputParameters dari aplikasi, dan “Value” harus sesuai dengan tipe parameter dalam aplikasi.

outputs

Map

Tidak

Parameter output pekerjaan. “Map” harus bernilai antara 0 dan 50. “Key” harus berupa nama parameter yang didefinisikan dalam OutputParameters dari aplikasi dan LocalPath yang tidak null, dan “Value” harus berupa jalur OSS. Nilai default:{}.

logging

AppJobDescription.Loggin

Tidak

Konfigurasi log.

config

Map

Tidak

Konfigurasi pelaksanaan pekerjaan.

Atribut AppJobDescription.Loggin

Parameter

Tipe

Diperlukan

Deskripsi

stdoutPath

String

Tidak

Direktori OSS tempat keluaran standar dialihkan. Panjangnya tidak boleh melebihi 1000 karakter. Nilai default: null

stderrPath

String

Tidak

Direktori OSS tempat kesalahan standar dialihkan. Panjangnya tidak boleh melebihi 1000 karakter. Nilai default: null

Deskripsi respons

Jika pembuatan berhasil, instance CreateJobResponse dikembalikan. Anda dapat menggunakan response.getJobId() untuk mendapatkan nama pekerjaan yang dibuat.

Tipe

Deskripsi

CreateJobResponse

Mendapatkan ID pekerjaan yang dibuat.

Catatan

Nama paket CreateJobResponse adalah com.aliyuncs.batchcompute.model.v20151111. Respons lain yang terdaftar di bawah ini berada dalam paket ini.

  • Jika pembuatan gagal, ClientException dilemparkan.

Kode contoh untuk mengirimkan pekerjaan DAG

Catatan

Struktur JobDescription kompleks. Oleh karena itu, disarankan menggunakan IntelliJ IDEA Community untuk pengembangan.

package com.aliyuncs.batchcompute.sample.v20151111;

import com.aliyuncs.batchcompute.main.v20151111.*;
import com.aliyuncs.batchcompute.model.v20151111.*;
import com.aliyuncs.batchcompute.pojo.v20151111.*;
import com.aliyuncs.exceptions.ClientException;


public class CreateJob {

    public static void main(String[] args) {

        BatchCompute client = new BatchComputeClient("cn-shenzhen", "your_access_id", "your_access_secret");

        try {
            JobDescription jobDescription = getJobDesc();

            CreateJobResponse response = client.createJob(jobDescription);
            String jobId = response.getJobId();
            //Pembuatan berhasil

            System.out.println("Got job id:" + jobId);

        } catch (ClientException e) {
            e.printStackTrace();
            //Pembuatan gagal
        }
    }


    private static JobDescription getJobDesc() {
        JobDescription desc = new JobDescription();

        desc.setName("testJob");
        desc.setPriority(1);
        desc.setDescription("Demo");
        desc.setType("DAG");
        desc.setJobFailOnInstanceFail(true);
        desc.setAutoRelease(false);


        DAG dag = new DAG();

        dag.addTask(getTaskDesc());

        desc.setDag(dag);

        Notification noti = new Notification();
        Topic topic = new Topic();
        topic.addEvent(Topic.ON_JOB_FAILED);
        topic.addEvent(Topic.ON_JOB_FINISHED);
        noti.setTopic(topic);
        topic.setName("tp_n1");
        topic.setEndpoint("xxxxx");
        desc.setNotification(noti);

        return desc;
    }

    private static TaskDescription getTaskDesc() {
        TaskDescription task = new TaskDescription();

        task.setClusterId("cls-xxxxxx");
        task.setInstanceCount(1);
        task.setMaxRetryCount(2);
        task.setTaskName("task_1");
        task.setTimeout(10000);

        Parameters parameters = new Parameters();
        Command cmd = new Command();
        cmd.setCommandLine("python main.py");
        cmd.setPackagePath("oss://my-bucket/test/worker.tar.gz");
        parameters.setCommand(cmd);
        parameters.setStderrRedirectPath("oss://my-bucket/test/logs/");
        parameters.setStdoutRedirectPath("oss://my-bucket/test/logs/");
        InputMappingConfig input = new InputMappingConfig();
        input.setLocale("GBK");
        input.setLock(true);
        parameters.setInputMappingConfig(input);

        task.setParameters(parameters);

        task.addInputMapping("oss://my-bucket/disk1/", "/home/admin/disk1/");
        task.addOutputMapping("/home/admin/disk2/", "oss://my-bucket/disk2/");

        return task;
    }

}

Kode contoh untuk mengirimkan pekerjaan App

package com.aliyuncs.batchcompute;

import com.aliyuncs.batchcompute.main.v20151111.BatchCompute;
import com.aliyuncs.batchcompute.main.v20151111.BatchComputeClient;
import com.aliyuncs.batchcompute.model.v20151111.CreateJobResponse;
import com.aliyuncs.batchcompute.pojo.v20151111.AppJobDescription;
import com.aliyuncs.batchcompute.pojo.v20151111.JobDescription;
import com.aliyuncs.exceptions.ClientException;


public class CreateAppJob {

    public static void main(String[] args){
        BatchCompute client = new BatchComputeClient("cn-shenzhen", "your_access_id", "your_access_secret");

        try {
            JobDescription jobDescription = getJobDesc();

            CreateJobResponse response = client.createJob(jobDescription);
            String jobId = response.getJobId();
            //Pembuatan berhasil

            System.out.println("Got job id:" + jobId);

        } catch (ClientException e) {
            e.printStackTrace();
            //Pembuatan gagal
        } 
    }

    private static JobDescription getJobDesc() {
        JobDescription jobDesc = new JobDescription();
        AppJobDescription app = new AppJobDescription();
        app.setAppName("myApp");
        app.addInputs("abc", "oss://bucket/inp");
        app.addOutputs("out", "oss://bucket/out");

        AppJobDescription.Logging logging = new AppJobDescription.Logging();
        logging.setStderrPath("oss://bucket/key/logs");
        logging.setStdoutPath("oss://bucket/key/logs");
        app.setLogging(logging);

        jobDesc.setName("java-sdk-test");
        jobDesc.setDescription("java sdk test job");
        jobDesc.setType("App");

        jobDesc.setApp(app);
        return jobDesc;
    }
}