All Products
Search
Document Center

Batch Compute (Deprecated):Tugas Bersamaan

Last Updated:Jul 02, 2025

Satu pekerjaan dapat mencakup beberapa tugas, dan satu program tugas dapat dijalankan dalam beberapa instance.

Bagaimana cara menjalankan tugas secara bersamaan?

Berikut adalah contoh deskripsi pekerjaan dalam format JSON:

{
    "DAG": {
        ...
        "Tasks": {
            ...
            "count": {
                "InstanceCount": 3,  //Menentukan jumlah instance: tiga VM
                "LogMapping": {},
                "AutoCluster": {
                    "ResourceType": "OnDemand",
                    "ImageId": "img-ubuntu",
                    "InstanceType": "ecs.sn1.medium"
                },
                "Parameters": {
                    "Command": {
                        "EnvVars": {},
                        "CommandLine": "python count.py",
                        "PackagePath": "oss://your-bucket/log-count/worker.tar.gz"
                    },
                    "InputMappingConfig": {
                        "Lock": true
                    },
                    "StdoutRedirectPath": "oss://your-bucket/log-count/logs/",
                    "StderrRedirectPath": "oss://your-bucket/log-count/logs/"
                },
                "OutputMapping": {},
                "MaxRetryCount": 0,
                "Timeout": 21600,
                "InputMapping": {}
            }
        }
    },
    "Description": "pekerjaan batchcompute",
    "Priority": 0,
    "JobFailOnInstanceFail": true,
    "Type": "DAG",
    "Name": "log-count"
}

Parameter InstanceCount pada tugas disetel ke 3, yang menunjukkan bahwa diperlukan tiga instance. Program tugas akan berjalan pada tiga mesin virtual (VM).

Memproses data dari segmen berbeda secara bersamaan

Anda dapat menjalankan program tugas yang sama untuk memproses data berbeda pada beberapa VM. Dalam program tugas, gunakan variabel lingkungan BATCH_COMPUTE_DAG_INSTANCE_ID(ID instance) untuk pembagian tugas agar program memproses data dari segmen yang berbeda. Berikut adalah potongan kode count.py:

...
# instance_id: harus dimulai dari 0
instance_id = os.environ['BATCH_COMPUTE_DAG_INSTANCE_ID']

...

filename = 'part_%s.txt' %  instance_id
...

# 1. unduh sebagian
oss_tool.download_file('%s/%s/%s.txt' % (pre, split_results, instance_id ), filename)


...
# 3. unggah hasil ke oss
upload_to = '%s/count_results/%s.json' % (pre, instance_id )
print('unggah ke %s' % upload_to)
oss_tool.put_data(json.dumps(m), upload_to)
...

Untuk informasi lebih lanjut, lihat Contoh Mulai Cepat.