Tugas HTTP menggunakan protokol HTTP atau HTTPS untuk menjadwalkan dan mengeksekusi tugas, memungkinkan penjadwalan lintas bahasa dan lintas platform tanpa SDK. Dua jenis koneksi didukung: koneksi di lingkungan Kubernetes dan koneksi di lingkungan non-Kubernetes.
Prasyarat
Jika versi mesin saat ini lebih awal dari 2.3.0, tingkatkan ke versi 2.3.0 atau yang lebih baru.
Instans akan dimulai ulang selama proses peningkatan.
Keunggulan
Mengintegrasikan layanan warisan tanpa perubahan kode.
Menggunakan solusi terpadu untuk berbagai bahasa.
Mendukung skenario agen AI dan alur kerja.
Jenis koneksi tugas HTTP
Menghubungkan di lingkungan Kubernetes
Untuk menghubungkan di lingkungan Kubernetes, Anda mengikat layanan dalam kluster Kubernetes ke aplikasi guna mengaktifkan penjadwalan tugas HTTP. Setelah layanan diikat, semua tugas dalam aplikasi dapat berbagi sumber daya Pod yang terkait dengan layanan tersebut.
Saat mengonfigurasi layanan Kubernetes dalam aplikasi, pusat penjadwalan secara otomatis mengambil informasi tentang instans Pod terkait. Saat mengonfigurasi tugas, Anda hanya perlu menentukan path permintaan HTTP dan tidak perlu menentukan alamat Pod. Ketika tugas dipicu, pusat penjadwalan mengirim permintaan HTTP ke Pod tujuan berdasarkan kebijakan perutean yang telah ditetapkan. Hasil eksekusi tugas dicatat dan didorong ke Simple Log Service (SLS) untuk dilihat dan dianalisis di masa mendatang.
Pusat penjadwalan secara berkala menggunakan thread penemuan layanan untuk mendeteksi peristiwa penskalaan Pod dan status abnormal. Pusat penjadwalan secara otomatis menyinkronkan informasi instans Pod terbaru dengan pengelola Pod. Proses ini memungkinkan pemantauan dinamis dan pemeliharaan status kluster Pod.
Pengelola Pod memelihara alamat jaringan dan status kesehatan Pod. Pengelola ini juga mendukung berbagai kebijakan perutean tugas. Selain perutean instans tunggal, pengelola ini menyediakan pola perutean broadcast sharding. Saat tugas dipicu, permintaan dapat disiarkan ke semua instans Pod dalam layanan tujuan. Pusat penjadwalan menyisipkan informasi konteks sharding, seperti indeks shard dan jumlah total shard, ke dalam header permintaan HTTP. Hal ini memungkinkan Anda melakukan kontrol logika detail halus dan partisi data selama eksekusi tugas.
Menghubungkan di lingkungan non-Kubernetes
Di lingkungan non-Kubernetes, Anda dapat mengonfigurasi nama domain tujuan HTTP di tingkat aplikasi. Hal ini memungkinkan manajemen nama domain terpadu dan kontrol kebijakan perutean untuk aplikasi tersebut. Setelah aplikasi diikat ke beberapa nama domain, semua tugas dalam aplikasi tersebut berbagi konfigurasi nama domain ini.
Nama domain diikat di tingkat aplikasi. Pusat penjadwalan memelihara informasi nama domain menggunakan pengelola nama domain. Saat membuat tugas, Anda hanya perlu mengonfigurasi path permintaan dan tidak perlu menentukan nama domain. Ketika tugas dipicu, pusat penjadwalan secara otomatis memilih nama domain yang sesuai berdasarkan kebijakan perutean yang telah ditetapkan dan mengirim permintaan ke gerbang. Gerbang melakukan autentikasi, pembentukan lalu lintas, dan penyeimbangan beban, lalu meneruskan permintaan ke layanan tujuan. Hasil eksekusi disinkronkan dengan SLS.
Pengelola nama domain bertanggung jawab untuk memelihara informasi nama domain. Pengelola ini mendukung penambahan, penghapusan, dan modifikasi nama domain, serta mengonfigurasi perutean berbasis tag. Pengelola ini mendistribusikan lalu lintas berdasarkan tag bisnis dan mendukung berbagai kebijakan perutean untuk memenuhi berbagai kebutuhan penjadwalan dan penyeimbangan beban.
Perbandingan jenis koneksi
Dimensi Perbandingan | Lingkungan Kubernetes: Menghubungkan melalui Layanan | Lingkungan Non-Kubernetes: Menghubungkan melalui Gerbang |
Pola Koneksi | Mengakses langsung instans Pod backend berdasarkan layanan Kubernetes. | Melewatkan permintaan melalui gerbang terpadu dan meneruskannya ke layanan nama domain tujuan. |
Mekanisme Penemuan Layanan | Mendengarkan secara aktif perubahan Endpoint dan memelihara daftar Pod secara dinamis. | Tidak mendukung penemuan layanan dan tidak mengetahui status node backend. |
Granularitas Target Eksekusi | Dapat menjadwalkan tugas ke alamat IP dan port Pod tertentu, yang memungkinkan panggilan langsung titik-ke-titik. | Permintaan dikirim ke gerbang, yang menangani penyeimbangan beban internal dan perutean instans. Pusat penjadwalan tidak dapat mengetahui node backend sebenarnya. |
Kebijakan Perutean | Mendukung kebijakan perutean instans tunggal dan broadcast sharding. | Tidak mendukung kebijakan perutean. Menggunakan kebijakan perutean gerbang. |
Broadcast Sharding | Secara native mendukung broadcast sharding, yang cocok untuk skenario pemrosesan batch paralel berskala besar. | Tidak mendukung broadcast sharding. Semua tugas dieksekusi pada satu titik, dan pemrosesan kolaboratif lintas node tidak dimungkinkan. |
Manajemen Status Kesehatan | Menyinkronkan status Endpoint secara real-time dan secara otomatis menghapus Pod yang belum siap atau telah dihentikan. | Mengandalkan pemeliharaan manual ketersediaan nama domain. |
Ekstensibilitas dan Fleksibilitas | Beradaptasi dengan lingkungan cloud-native dan mendukung skenario seperti penskalaan otomatis dan penyebaran bergulir. | Lebih cocok untuk arsitektur tradisional atau integrasi sistem heterogen. Memiliki kompatibilitas kuat dan mudah diintegrasikan dengan sistem gerbang yang sudah ada. |
Skenario | Layanan mikro berkontainer, eksekusi sharded pekerjaan pemrosesan batch, dan tugas terjadwal berkonkurensi tinggi. | Lingkungan non-kontainer, arsitektur penyebaran hibrida, integrasi sistem warisan, dan penjadwalan API tingkat perusahaan yang memerlukan administrasi gerbang terpadu. |
Langkah-langkah koneksi
Masuk ke Konsol MSE XXL-JOB dan pilih wilayah dari bilah menu atas.
Di panel navigasi sebelah kiri, pilih Penjadwalan Tugas > XXL-JOB.
Klik instans target. Di panel navigasi sebelah kiri, pilih Manajemen Aplikasi, lalu klik Buat Aplikasi. Atur parameter Jenis Aplikasi menjadi Aplikasi Http, lalu klik OK.
Hubungkan ke pelaksana HTTP. Untuk informasi selengkapnya, lihat Menghubungkan aplikasi HTTP ke pelaksana.
Di panel navigasi sebelah kiri, pilih Manajemen Tugas, lalu klik Buat Tugas. Untuk parameter Aplikasi Terkait, pilih aplikasi yang Anda buat pada langkah 3. Atur parameter Jenis Tugas menjadi HTTP.
Konfigurasikan nama domain permintaan, path, metode permintaan, dan waktu habis untuk tugas HTTP.
Konfigurasikan parameter permintaan untuk tugas HTTP. Isi parameter Header, Query, dan Body sesuai kebutuhan.
Konfigurasikan definisi respons untuk tugas HTTP, termasuk pola untuk menguraikan respons sukses dan hasilnya. Tiga jenis penguraian tersedia: kode respons, badan respons, dan Body respons.
Konfigurasikan kebijakan pengulangan untuk tugas HTTP, termasuk jumlah pengulangan dan interval pengulangan. Jika jumlah pengulangan lebih besar dari 0—yang berarti tugas diulang setelah gagal—Anda juga dapat mengonfigurasi nama domain dan path antarmuka pengulangan. Jika tugas gagal, permintaan dikirim ke nama domain dan path tersebut.
Header permintaan tugas HTTP
Saat MSE-XXLJOB mengeksekusi tugas HTTP, parameter sistem berikut ditambahkan ke header permintaan:
Nama | Deskripsi | Nilai contoh |
schedulerx-appId | ID Aplikasi | 12 |
schedulerx-jobId | ID Tugas | 35 |
schedulerx-jobName | Nama Tugas | http-test-job |
schedulerx-scheduleTimestamp | Timestamp penjadwalan (milidetik) | 1760164985000 |
schedulerx-dataTimestamp | Timestamp data (milidetik) | 1760164980000 |
schedulerx-user | Informasi pengguna | 1344371792 |
schedulerx-maxAttempt | Jumlah maksimum pengulangan | 3 |
schedulerx-attempt | Jumlah pengulangan saat ini | 1 |
schedulerx-jobExecutionId | ID eksekusi tugas | 1417474640397221891 |
schedulerx-logId | ID shard (untuk broadcast sharding) | 1417474640531439619 |
schedulerx-shardingIndex | Indeks shard (untuk broadcast sharding) | 0 |
schedulerx-shardingTotal | Jumlah total shard (untuk broadcast sharding) | 3 |