Tugas pemrosesan media asinkron mengembalikan hasilnya di latar belakang, dan waktu dari pengiriman hingga tersedianya hasil bergantung pada penjadwalan dan pemrosesan. Topik ini menjelaskan faktor-faktor yang menentukan garis waktu tugas asinkron, cara menafsirkan status dan progres tugas, serta cara mengintegrasikan tugas asinkron agar variasi waktu penyelesaian tidak menghambat alur kerja bisnis Anda.
Apa itu tugas asinkron?
Tugas asinkron adalah tugas pemrosesan media yang diterima layanan saat dikirimkan, lalu dijalankan di latar belakang. Hasilnya baru tersedia setelah pemrosesan selesai. Alibaba Cloud ApsaraVideo VOD, Intelligent Media Services, dan Media Processing menyediakan berbagai kemampuan pemrosesan media asinkron.
Pengiriman yang berhasil hanya berarti tugas tersebut diterima—bukan berarti tugas langsung dimulai atau selesai dalam periode waktu tetap.
Tugas asinkron pada dasarnya merupakan tugas pemrosesan offline. Berbeda dengan API sinkron, waktu di mana tugas asinkron menghasilkan output dipengaruhi oleh penjadwalan tugas, fluktuasi volume tugas, kompleksitas tugas, karakteristik file sumber, dan pengaturan parameter. Durasi total tugas bisa jauh lebih lama daripada waktu pemrosesan aktual.
Oleh karena itu, tugas asinkron tidak cocok digunakan sebagai kondisi penghambat dalam alur kerja bisnis yang sensitif terhadap latensi. Jangan gunakan nilai referensi kecepatan pemrosesan dalam topik ini untuk memperkirakan waktu pengiriman di lingkungan produksi.
Cakupan
Topik ini berlaku untuk tugas pemrosesan media yang diinisiasi dan dijalankan secara asinkron di ApsaraVideo VOD, Intelligent Media Services, dan Media Processing, termasuk namun tidak terbatas pada:
Tugas transkoding media.
Tugas penyuntingan media.
Tugas snapshot dan gambar sprite.
Tugas analisis aset media.
Tugas pemrosesan media asinkron berbantuan AI.
Tugas pemrosesan media lain yang dikirimkan dan hasilnya diambil melalui mekanisme asinkron.
Jenis tugas dapat berbeda dalam pipeline pemrosesan, karakteristik durasi, status tugas, bidang progres, metode kueri, dan mekanisme notifikasi hasil. Jika dokumentasi suatu kemampuan tertentu menyediakan informasi terpisah, ikuti dokumentasi produk tersebut.
Garis waktu umum
Baca bagian ini secara lengkap sebelum menginisiasi tugas, dan rancang alur kerja bisnis Anda sesuai dengan hal tersebut. Durasi total tugas asinkron biasanya terdiri dari dua bagian:
Durasi total tugas = Waktu tunggu + Waktu pemrosesan aktual
Waktu tunggu — waktu yang dihabiskan tugas setelah dikirimkan hingga memasuki tahap pemrosesan aktual.
Waktu pemrosesan aktual — waktu yang dikonsumsi untuk menjalankan tugas itu sendiri setelah memasuki tahap pemrosesan aktual.
ID tugas yang dikembalikan hanya berarti tugas telah dibuat.
Waktu penyelesaian yang Anda alami sebenarnya adalah durasi total tugas, bukan hanya waktu pemrosesan aktual.
Deskripsi durasi tugas, nilai referensi kecepatan pemrosesan, contoh, dan jawaban FAQ dalam topik ini hanya menggambarkan karakteristik pemrosesan dalam skenario tipikal. Hal tersebut tidak merupakan komitmen layanan, metrik SLA, jaminan pengiriman, atau dasar kompensasi layanan atau bisnis.
Meskipun spesifikasi tugas mirip dengan contoh referensi, durasi total tugas tetap bisa jauh lebih lama akibat peningkatan waktu tunggu.
Jika bisnis Anda memiliki persyaratan ketat terhadap waktu penyelesaian, sediakan waktu buffer dan gunakan desain penguraian keterkaitan asinkron, fallback timeout, serta degradasi bisnis.
Durasi total tugas dibandingkan dengan waktu pemrosesan aktual
Perbedaan ini merupakan kunci untuk memahami garis waktu tugas asinkron. Kecepatan pemrosesan, pengali kecepatan, dan contoh durasi dalam topik ini hanya menggambarkan seberapa cepat tugas dijalankan setelah memasuki tahap pemrosesan aktual.
Seberapa cepat Anda mendapatkan hasil bergantung pada dua faktor:
Berapa lama tugas menunggu sebelum memasuki tahap pemrosesan aktual.
Berapa lama tugas tersebut benar-benar diproses.
Oleh karena itu:
Nilai referensi kecepatan pemrosesan hanya menggambarkan waktu pemrosesan aktual. Nilai tersebut bukan durasi total tugas.
Anda tidak dapat menurunkan waktu pengiriman tugas dari nilai referensi kecepatan pemrosesan.
Tugas dengan spesifikasi yang sama yang dikirimkan pada periode berbeda dapat memiliki durasi total tugas yang sangat berbeda.
Waktu tunggu
Setelah tugas dikirimkan, layanan menjadwalkan tugas tersebut ke tahap pemrosesan aktual berdasarkan jenis tugas, volume tugas, dan kebijakan pemrosesan.
Waktu tunggu dapat meningkat dalam situasi berikut:
Sejumlah besar tugas dikirimkan dalam periode waktu singkat.
Volume tugas mengalami fluktuasi signifikan dalam periode yang sama.
Tugas yang sangat kompleks menyumbang proporsi besar dalam antrian.
Pengiriman yang berhasil tidak berarti tugas telah memasuki tahap pemrosesan aktual.
Waktu tunggu dapat bervariasi tergantung periode pengiriman, jenis tugas, skala tugas, dan perbedaan antar pipeline pemrosesan.
Jangan mengirim ulang tugas yang sama selama masih dalam masa tunggu. Pengiriman ulang dapat menyebabkan pemrosesan duplikat dan semakin memperpanjang waktu tunggu keseluruhan.
Gunakan callback asinkron untuk mendapatkan hasil tugas, bukan polling frekuensi tinggi.
Perhatikan poin-poin berikut mengenai status layanan:
Waktu tunggu dipengaruhi oleh banyak faktor, seperti volume tugas dan karakteristik tugas. Peningkatan waktu tunggu saja tidak dapat dijadikan dasar untuk menentukan adanya masalah layanan.
Jika terjadi masalah layanan berdampak luas, Alibaba Cloud akan memberi tahu pengguna yang terdampak melalui pesan internal, SMS, atau saluran lainnya.
Waktu pemrosesan aktual
Waktu pemrosesan aktual berkaitan erat dengan jenis tugas, karakteristik file sumber, dan konfigurasi tugas. Model durasi tidak sama untuk setiap kemampuan.
Faktor-faktor yang umum memengaruhi
| Faktor | Pola | Deskripsi |
| Durasi file sumber | Durasi lebih panjang biasanya berarti waktu pemrosesan aktual lebih lama | Salah satu faktor utama untuk sebagian besar tugas pemrosesan media. |
| Spesifikasi output | Spesifikasi lebih tinggi biasanya berarti waktu pemrosesan aktual lebih lama | Misalnya, resolusi lebih tinggi atau format output lebih kompleks. |
| Kompleksitas algoritma pemrosesan | Algoritma lebih kompleks biasanya berarti waktu pemrosesan aktual lebih lama | Misalnya, transkoding lanjutan atau analisis kompleks. |
| Parameter kustom | Parameter lebih kompleks biasanya berarti waktu pemrosesan aktual lebih lama | Misalnya, parameter peningkatan atau pemrosesan multi-tahap. |
| Karakteristik file sumber | Karakteristik lebih kompleks biasanya berarti fluktuasi durasi lebih besar | Misalnya, bitrate, laju frame, format kontainer, atau struktur aliran. |
| Jenis tugas | Jenis tugas berbeda memiliki model durasi berbeda | Tugas transkoding, penyuntingan, snapshot dan gambar sprite, serta analisis aset media tidak dapat dibandingkan secara langsung satu sama lain. |
Perbedaan antar jenis tugas
Tugas transkoding: waktu pemrosesan aktual biasanya bergantung pada durasi video, resolusi, format encoding, algoritma transkoding, dan parameter templat.
Tugas penyuntingan: waktu pemrosesan aktual juga dipengaruhi oleh jumlah klip, apakah diperlukan re-encoding, apakah pemotongan melintasi keyframe, dan penyambungan multi-klip.
Tugas snapshot, gambar sprite, dan analisis aset media: cara menafsirkan waktu pemrosesan aktual mungkin berbeda dari tugas transkoding, dan bidang progres, bidang status, serta pembagian tahapan tidak selalu tersedia.
Status dan progres tugas
Bidang status, bidang progres, metode kueri, dan mekanisme pengembalian hasil dapat berbeda antar tugas asinkron. Logika status dalam topik ini hanya menggambarkan tahapan pemrosesan umum tugas asinkron. Hal ini tidak berarti semua tugas asinkron menggunakan model status yang sama.
Secara umum, tugas asinkron berpindah dari tahap pengiriman ke tahap tunggu, lalu ke tahap pemrosesan aktual, dan akhirnya mencapai status akhir berhasil atau gagal.

Perhatikan poin-poin berikut:
Beberapa tugas menyediakan bidang progres yang dapat Anda kueri.
Beberapa tugas hanya mengembalikan beberapa status, seperti
Processing,Succeeded, atauFailed.Untuk beberapa tugas,
Waitingbukan status mandiri. Anda harus menafsirkannya dengan menggabungkan bidang status dengan bidang lainnya.Untuk definisi status spesifik, bidang progres, dan metode kueri, merujuklah pada tanggapan API aktual dan dokumentasi produk terkait.
Contoh: tugas transkoding
Konten berikut hanya menjelaskan cara menafsirkan status dan durasi tugas transkoding. Hal ini tidak berarti tugas asinkron lain menggunakan mekanisme yang sama.
Status tugas transkoding
Setelah Anda mengirimkan tugas transkoding, status tugas dalam hasil kueri mungkin berupa Transcoding. Status Transcoding berarti tugas telah memasuki alur kerja transkoding, tetapi belum tentu transkoding aktual telah dimulai. Gunakan bidang TranscodeProgress untuk menentukan lebih lanjut tahapan tugas tersebut.
| Status tugas | TranscodeProgress | Deskripsi | Interpretasi yang disarankan |
Transcoding atau Submitted | 0 | Tugas belum memasuki tahap transkoding aktual. | Waiting |
Transcoding atau Running | Lebih besar dari 0 | Tugas telah memasuki tahap transkoding aktual. | Transcoding |
Succeeded | 100 | Transkoding berhasil diselesaikan. | Succeeded |
Failed | Tidak berlaku | Transkoding dihentikan secara abnormal. | Failed |
Untuk tugas transkoding, waiting biasanya bukan enumerasi status mandiri. Ini merupakan tahapan yang ditentukan dengan menggabungkan status tugas dan progres transkoding.
Referensi kecepatan pemrosesan transkoding
Nilai referensi berikut menggambarkan kecepatan pemrosesan tugas transkoding setelah memasuki tahap pemrosesan aktual dalam kondisi uji tipikal. Nilai tersebut tidak mencakup waktu tunggu dan tidak mewakili durasi total tugas.
Pengali kecepatan
Pengali kecepatan — kelipatan durasi video yang dapat diproses per satuan waktu pemrosesan.
Misalnya, kecepatan 3x berarti sekitar 3 menit konten video dapat diproses per 1 menit waktu pemrosesan. Untuk video berdurasi 30 menit, waktu pemrosesan aktual teoretis sekitar 10 menit, tidak termasuk waktu tunggu.
Nilai referensi berdasarkan algoritma transkoding
Tabel berikut menggunakan skenario transkoding H.264 720p tipikal sebagai referensi dan menggambarkan karakteristik kecepatan pemrosesan berbagai algoritma transkoding.
| Algoritma transkoding | Referensi kecepatan pemrosesan | Deskripsi |
| Transkoding standar | Sekitar kecepatan 3x | Hanya mencerminkan kecepatan tahap pemrosesan dalam kondisi tipikal. |
| Narrowband HD 1.0 | Sekitar kecepatan 1,5x | Waktu pemrosesan aktual biasanya lebih lama daripada transkoding standar. |
| Narrowband HD 2.0 | Biasanya jauh lebih rendah dari kecepatan 1x | Waktu pemrosesan aktual biasanya lebih lama daripada durasi video sumber. Waktu aktual bergantung pada tugas spesifik. |
Nilai referensi di atas hanya berlaku untuk skenario transkoding H.264 720p tipikal.
Untuk resolusi lebih tinggi, encoding lebih kompleks, dan parameter lebih berat, kecepatan pemrosesan biasanya lebih rendah daripada nilai referensi di atas.
Perbedaan bitrate, laju frame, format kontainer, dan struktur aliran video sumber dapat secara signifikan memengaruhi waktu pemrosesan aktual.
Kompleksitas pemrosesan Narrowband HD 2.0 biasanya jauh lebih tinggi daripada transkoding standar dan Narrowband HD 1.0.
Untuk durasi aktual tugas tertentu, merujuklah pada hasil kueri status tugas atau notifikasi penyelesaian.
Siklus hidup tugas dan pengambilan hasil
Pengiriman tugas
Setelah Anda mengirimkan tugas asinkron melalui API, layanan mengembalikan ID tugas. ID tugas merupakan pengidentifikasi unik yang digunakan untuk mengkueri status, mengkorelasikan notifikasi hasil, dan troubleshooting masalah. Catat ID tugas tersebut di sistem Anda sendiri.
Notifikasi hasil
Setelah tugas diproses, layanan dapat mendorong notifikasi hasil jika URL callback dikonfigurasi. Anda dapat mengandalkan callback untuk mendeteksi penyelesaian tugas secara otomatis, tanpa polling terus-menerus.
Menggunakan callback
Jika URL callback tidak dapat dijangkau, layanan melakukan retry secara otomatis sesuai kebijakan yang telah ditentukan.
Jika pengiriman tetap gagal setelah beberapa kali retry, gunakan API kueri untuk mengonfirmasi status akhir tugas.
Notifikasi callback mungkin mengalami penundaan atau dikirim lebih dari sekali akibat fluktuasi jaringan atau pengecualian di sisi Anda.
Logika penanganan callback Anda harus melakukan pemeriksaan idempotensi berdasarkan ID tugas.
Untuk status akhir tugas, merujuklah pada hasil yang dikembalikan oleh API kueri.
Untuk detail pengaturan callback dan mekanisme retry, lihat Konfigurasi callback.
Kueri tugas
Anda dapat menggunakan ID tugas untuk mengkueri status saat ini dan hasil pemrosesan tugas. API kueri terutama mengembalikan status tugas, progres, dan informasi hasil.
Kueri tugas dalam skenario berikut:
Tidak ada notifikasi callback yang dikonfigurasi.
Callback dikonfigurasi, tetapi Anda perlu memeriksa progres saat ini.
Durasi total tugas melebihi ekspektasi bisnis Anda.
Diperlukan fallback ketika notifikasi callback tidak diterima.
Troubleshooting umum
Tetapkan garis dasar ekspektasi Anda berdasarkan model durasi total tugas: waktu pemrosesan aktual yang biasanya dibutuhkan oleh jenis dan spesifikasi tugas, ditambah waktu buffer untuk tahap tunggu. Jika durasi total tugas melebihi garis dasar tersebut, periksa perubahan status tugas, waktu pengiriman, dan konfigurasi tugas, lalu lakukan langkah-langkah berikut.
Langkah 1: Konfirmasi apakah tugas telah selesai
Gunakan ID tugas untuk mengkueri status atau hasil tugas saat ini:
Jika tugas telah selesai, ambil hasilnya dan evaluasi durasi total tugas. Tidak diperlukan langkah lanjutan.
Jika tugas gagal, periksa kode kesalahan dan pesan kesalahan, lalu perbaiki masalah sesuai petunjuk.
Jika tugas belum selesai, lanjutkan ke Langkah 2 untuk menentukan apakah tugas berada dalam tahap tunggu atau tahap pemrosesan aktual.
Langkah 2: Tentukan tahapan saat ini berdasarkan jenis tugas
Untuk tugas transkoding: gunakan status
Transcodingbersama denganTranscodeProgressuntuk menentukan apakah tugas telah memasuki tahap transkoding aktual.Untuk tugas asinkron lainnya: merujuklah pada bidang yang dikembalikan oleh API kueri tugas terkait dan dokumentasinya. Jangan terapkan langsung metode interpretasi untuk tugas transkoding.
Jika tugas belum memasuki tahap pemrosesan aktual, tugas tersebut masih menunggu untuk dijadwalkan. Tunggu layanan menjadwalkan tugas dan jangan mengirim ulang. Jika tugas sudah berada dalam tahap pemrosesan aktual, lanjutkan ke Langkah 3.
Langkah 3: Identifikasi kemungkinan penyebab berdasarkan karakteristik tugas
| Gejala | Kemungkinan penyebab | Tindakan yang disarankan |
| Tidak ada hasil yang dikembalikan dalam waktu lama | Fluktuasi volume tugas, peningkatan waktu tunggu, masalah layanan, atau kompleksitas tugas tinggi | Konfirmasi apakah tugas masih menunggu untuk dijadwalkan. Peningkatan waktu tunggu saja tidak menunjukkan adanya masalah layanan. |
| Waktu pemrosesan aktual jauh lebih lama daripada tugas umum | File sumber kompleks, parameter berat, atau kompleksitas tugas tinggi | Periksa file sumber dan konfigurasi terhadap faktor-faktor dalam Waktu pemrosesan aktual. |
| Tugas gagal | File sumber abnormal, kesalahan parameter, atau kesalahan pemrosesan | Periksa deskripsi kode kesalahan dan perbaiki masalah sesuai petunjuk. |
| Kueri tidak mengembalikan hasil | ID tugas salah, atau tugas tidak berhasil dikirimkan | Verifikasi hasil pengiriman dan ID tugas. |
Jika tindakan di atas tidak menyelesaikan masalah, lanjutkan ke Langkah 4.
Langkah 4: Kumpulkan informasi untuk dukungan teknis
Untuk mendapatkan bantuan dari dukungan teknis, sediakan informasi berikut jika memungkinkan:
ID tugas.
Waktu pengiriman tugas.
Jenis tugas, seperti transkoding, penyuntingan, snapshot dan gambar sprite, atau analisis aset media.
Durasi, resolusi, dan format encoding file sumber.
Konfigurasi templat atau parameter pemrosesan.
Apakah tugas dikirimkan secara batch.
Gejala masalah dan cakupan dampaknya.
Metode integrasi yang direkomendasikan
| Metode | Deskripsi | Skenario |
| Callback asinkron (Direkomendasikan) | Layanan mendorong hasil setelah tugas selesai. | Lingkungan produksi dan skenario bisnis formal. |
| Polling | Mengkueri status dan hasil tugas secara berkala. | Debugging, pengujian, dan sebagai fallback ketika callback gagal. |
Rekomendasi integrasi
Untuk mengurangi dampak fluktuasi latensi tugas asinkron terhadap bisnis Anda, ikuti rekomendasi berikut:
Gunakan penguraian keterkaitan asinkron untuk memproses tugas media dalam desain sistem Anda.
Deteksi hasil tugas melalui callback asinkron atau kueri status, bukan menunggu secara sinkron, dan gunakan callback asinkron di lingkungan produksi.
Hindari polling frekuensi tinggi untuk mengurangi permintaan tidak valid.
Terapkan kontrol idempotensi saat mengirimkan tugas untuk menghindari pengiriman duplikat.
Sebarkan pengiriman tugas batch untuk menghindari antrian besar dalam periode waktu singkat.
Siapkan pemantauan timeout tugas, peringatan, intervensi manual, dan mekanisme fallback bisnis.
Untuk skenario bisnis kritis, jam sibuk, tugas batch, dan tugas kompleks, sediakan waktu buffer yang cukup dan rancang rencana degradasi bisnis.
FAQ
Apakah tugas transkoding 720p berdurasi 10 menit selalu selesai dalam 3 hingga 4 menit?
Tidak selalu. Nilai referensi sekitar kecepatan 3x menggambarkan kecepatan pemrosesan tugas transkoding setelah memasuki tahap pemrosesan aktual dalam kondisi uji tipikal. Nilai tersebut tidak mencakup waktu tunggu sebelum tugas memasuki tahap pemrosesan aktual, dan tidak mewakili durasi total tugas di lingkungan produksi.
Waktu di mana hasil tersedia ditentukan oleh durasi total tugas. Jangan menurunkan waktu pengiriman tugas dari nilai referensi kecepatan pemrosesan.
Jika durasi total tugas melebihi ekspektasi bisnis Anda, ikuti langkah-langkah dalam Troubleshooting umum.
Mengapa status tugas transkoding saya menunjukkan Transcoding sementara TranscodeProgress tetap 0?
Untuk tugas transkoding, status Transcoding menunjukkan bahwa tugas telah memasuki alur kerja transkoding, yang tidak sama dengan dimulainya transkoding aktual. Ketika TranscodeProgress bernilai 0, tugas masih berada dalam tahap tunggu. Ketika TranscodeProgress lebih besar dari 0, tugas telah memasuki tahap transkoding aktual.
Spesifikasi tugas saya mirip dengan skenario referensi. Mengapa durasi total tugas jauh lebih lama?
Kemungkinan penyebabnya meliputi namun tidak terbatas pada:
Tugas menunggu dalam waktu lama sebelum memasuki tahap pemrosesan aktual.
Karakteristik aktual file sumber berbeda dari skenario referensi tipikal.
Parameter tugas atau konfigurasi templat lebih kompleks dari biasanya.
Fluktuasi volume tugas dalam periode yang sama meningkatkan durasi total tugas.
Untuk mengonfirmasi penyebab lebih lanjut, mintalah bantuan dari dukungan teknis dan sediakan ID tugas.
Apakah peningkatan waktu tunggu selalu menunjukkan adanya masalah layanan?
Tidak selalu. Waktu tunggu dipengaruhi oleh banyak faktor, seperti volume tugas dan karakteristik tugas. Peningkatan waktu tunggu saja tidak dapat dijadikan dasar untuk menentukan adanya masalah layanan. Untuk mengonfirmasi status layanan saat ini, mintalah bantuan dari dukungan teknis.
Dapatkah saya menggunakan nilai referensi kecepatan pemrosesan untuk berkomitmen terhadap waktu pengiriman bisnis saya?
Tidak. Nilai referensi kecepatan pemrosesan hanya membantu Anda memahami karakteristik pemrosesan tugas. Jangan gunakan nilai tersebut sebagai dasar untuk waktu pengiriman produksi, SLA bisnis, atau komitmen kepada pengguna akhir Anda.
Untuk skenario bisnis dengan persyaratan garis waktu ketat, sediakan waktu buffer dalam arsitektur bisnis Anda dan siapkan mekanisme fallback timeout serta degradasi.
Dapatkah saya menafsirkan status tugas asinkron lain dengan cara yang sama seperti tugas transkoding?
Tidak selalu. Status Transcoding dan bidang TranscodeProgress dalam contoh transkoding bersifat spesifik untuk tugas transkoding.
Untuk tugas penyuntingan, snapshot dan gambar sprite, analisis aset media, dan tugas asinkron lainnya, bidang status, bidang progres, dan metode interpretasi mungkin berbeda dari tugas transkoding. Merujuklah pada API kueri tugas spesifik dan dokumentasi produk terkait.
SLA dan cakupan tanggung jawab
Jika Anda mencurigai penundaan pemrosesan tugas disebabkan oleh masalah layanan, mintalah bantuan dari dukungan teknis dan sediakan ID tugas serta informasi terkait.
Ketersediaan layanan, tanggung jawab, dan cakupan kompensasi diatur oleh Ketentuan Layanan resmi dan SLA.
Untuk informasi lebih lanjut tentang kemampuan asinkron tertentu, merujuklah pada dokumentasi produk terkait.