All Products
Search
Document Center

SchedulerX:Pekerjaan HTTP

Last Updated:Jun 21, 2026

Pekerjaan HTTP SchedulerX memerlukan agen untuk penjadwalan. Mode eksekusi serverless memerlukan nama domain publik, yang menimbulkan risiko stabilitas dan keamanan. Kami merekomendasikan penggunaan pekerjaan HTTP XXL-JOB.

Prasyarat

  • Mode eksekusi serverless: Memicu pekerjaan HTTP menggunakan fungsi cloud atau arsitektur serverless. Mode ini cocok untuk panggilan API publik dan tugas ringan.

  • Mode eksekusi agen: Menjalankan pekerjaan HTTP menggunakan agen SchedulerX yang diinstal pada perangkat target. Anda harus terlebih dahulu men-deploy agen SchedulerX. Mode ini cocok untuk panggilan layanan internal dan skenario pemrosesan kompleks.

Catatan

Anda dapat memilih serverless atau agent sebagai nilai parameter mode eksekusi saat membuat pekerjaan HTTP di konsol.

Mode eksekusi

Tabel berikut membandingkan pekerjaan HTTP SchedulerX dan pekerjaan HTTP MSE-XXLJOB.

SchedulerX serverless (Tidak Didukung Lagi)

SchedulerX agent

MSE-XXL-JOB

Client required

Tidak. Permintaan dimulai oleh server.

Ya. Server mengirim perintah ke client, yang kemudian memulai panggilan.

Tidak. Permintaan dimulai oleh server.

Request method

Saat ini, hanya GET dan POST yang didukung. Metode lain akan didukung berdasarkan permintaan pengguna.

Request definition

Hanya mendukung pengaturan cookie dan parameter POST.

Mendukung semua pengaturan parameter pekerjaan HTTP, termasuk Header, Query, dan Body.

Response definition

  • Kode respons HTTP: Menentukan keberhasilan pekerjaan berdasarkan kode respons HTTP.

  • Penguraian JSON badan respons: Respons harus dalam format JSON. Keberhasilan pekerjaan ditentukan oleh pasangan kunci-nilai tertentu.

  • Badan respons: Respons berupa string. Keberhasilan pekerjaan ditentukan oleh kecocokan tepat dengan string tertentu dalam badan respons.

Second-level scheduling

Tidak. Hanya mendukung penjadwalan tingkat menit.

Ya

Ya

Internal URL support

Tidak

Ya

Domain name requirement

Tidak

Ya. Mendukung akses Kubernetes Service tanpa memerlukan gerbang atau nama domain.

Broadcast sharding support

Tidak

Ya

Task name parsing

Jika nama tugas berisi karakter Tionghoa, backend dapat mendekode-nya menggunakan URLDecode.decode(jobName, "utf-8").

Buat pekerjaan HTTP

Anda dapat membuat pekerjaan HTTP menggunakan metode permintaan GET atau POST.

Langkah 1: Konfigurasi dasar

GET

  1. Deploy layanan HTTP yang dapat diakses.

    • Jika Anda sudah memiliki layanan HTTP yang dapat diakses, lanjutkan ke Langkah 2 untuk membuat pekerjaan HTTP di konsol SchedulerX. Siapkan URL layanan HTTP target, metode permintaan (GET atau POST), dan informasi konfigurasi relevan lainnya.

    • Jika Anda belum men-deploy layanan HTTP, rujuk kode contoh Java berikut untuk mengembangkan antarmuka HTTP:

      @GET
      @Path("hi")
      @Produces(MediaType.APPLICATION_JSON)
      public RestResult hi(@QueryParam("user") String user) {
          TestVo vo = new TestVo();
          vo.setName(user);
          RestResult result = new RestResult();
          result.setCode(200);
          result.setData(vo);
          return result;
      }
  2. Buat pekerjaan HTTP di konsol SchedulerX.

    Berikut adalah konfigurasi relevan untuk pekerjaan HTTP GET. Untuk informasi lebih lanjut tentang cara membuat pekerjaan terjadwal, lihat Buat pekerjaan terjadwal. Konfigurasikan parameter berikut: atur Task name menjadi http_get, pilih Http untuk Task type, masukkan alamat permintaan target di bidang Full URL, pilih GET untuk Request method, pilih Custom JSON untuk response analysis mode, masukkan code untuk Return Check Key, masukkan 200 untuk Return Check Value, atur Execution Timeout menjadi 10 detik, dan pilih serverless untuk execution mode.

POST

  1. Deploy layanan HTTP yang dapat diakses.

    • Jika Anda sudah memiliki layanan HTTP yang dapat diakses, lanjutkan ke Langkah 2 untuk membuat pekerjaan HTTP di konsol SchedulerX. Siapkan URL layanan HTTP target, metode permintaan (GET atau POST), dan informasi konfigurasi relevan lainnya.

    • Jika Anda belum men-deploy layanan HTTP, rujuk kode contoh Java berikut untuk mengembangkan antarmuka HTTP:

      import com.alibaba.schedulerx.common.constants.CommonConstants;
      @POST
      @Path("createUser")
      @Produces(MediaType.APPLICATION_JSON)
      public RestResult createUser(@FormParam("userId") String userId, 
              @FormParam("userName") String userName) {
          TestVo vo = new TestVo();
          System.out.println("userId=" + userId + ", userName=" + userName);
          vo.setName(userName);
          RestResult result = new RestResult();
          result.setCode(200);
          result.setData(vo);
          return result;
      }
  2. Buat pekerjaan HTTP di konsol SchedulerX.

    Berikut adalah konfigurasi relevan untuk pekerjaan HTTP POST. Untuk informasi lebih lanjut tentang cara membuat pekerjaan terjadwal, lihat Buat pekerjaan terjadwal. Atur Task name menjadi http_post, pilih Http untuk Task type, masukkan alamat antarmuka target di bidang Full URL, pilih POST untuk Request method, pilih Custom JSON untuk response analysis mode, masukkan code untuk Return Check Key, masukkan 200 untuk Return Check Value, atur Execution Timeout menjadi 10 detik, pilih application/x-www-form-urlencoded untuk ContentType, masukkan POST parameters dalam format key1=value1&key2=value2, dan pilih serverless untuk execution mode.

Parameter untuk pekerjaan HTTP serverless dan agent:

Catatan

Parameter konfigurasi untuk mode eksekusi serverless dan agent sama di konsol SchedulerX.

Parameter

Deskripsi

Name

Nama kustom pekerjaan.

Description

Deskripsi singkat tujuan bisnis pekerjaan untuk memudahkan pencarian di masa depan.

Application ID

Kelompok tempat pekerjaan tersebut berada. Anda dapat memilih salah satu dari daftar drop-down.

Job Type

Jenis pekerjaan. Untuk skenario ini, pilih HTTP.

Full URL

Masukkan URL lengkap yang dimulai dengan http:// atau https://.

Request method

Pilih GET atau POST.

Response analysis mode

Pilih mode analisis respons. Mode yang didukung sebagai berikut:

  • HTTP response code.

    Keberhasilan pekerjaan ditentukan oleh kode respons HTTP tertentu yang Anda tetapkan.

  • Custom JSON.

    Tetapkan kunci pemeriksaan nilai kembali dan nilai pemeriksaan nilai kembali.

    Server secara default menggunakan format JSON untuk hasil permintaan HTTP. Keberhasilan diverifikasi berdasarkan kunci dan nilai yang dimasukkan.

    {
      "code": 200,
      "data": "true",
      "message": "",
      "requestId": "446655068791923614103381232971",
      "success": true
    }

    Pada contoh di atas, Anda dapat memverifikasi keberhasilan dengan memeriksa apakah kunci success memiliki nilai true, atau jika kunci code memiliki nilai 200.

  • Custom string.

    Menentukan keberhasilan pekerjaan berdasarkan kecocokan tepat dengan string kustom dalam respons.

Jika Anda memilih HTTP Response Code untuk response analysis mode:

HTTP response code

Tetapkan kode respons HTTP yang diharapkan. Nilai default adalah 200.

Jika Anda memilih Custom JSON untuk response analysis mode:

Return check key

Hanya mendukung nilai kembali JSON. Kunci yang diperiksa untuk respons sukses.

Return check value

Hanya mendukung nilai kembali JSON. Nilai yang diperiksa untuk respons sukses.

Jika Anda memilih Custom String untuk response analysis mode:

Custom string

Tetapkan string kustom.

Execution timeout

  • serverless: Maksimal 30 detik untuk edisi Basic dan maksimal 120 detik untuk edisi Professional.

  • agent: Tanpa Batas.

Content type

Saat Request method adalah POST, menentukan format data dari badan permintaan. Format yang didukung:

  • application/x-www-form-urlencoded

  • application/json

POST parameters

Saat Request method adalah POST, menentukan parameter formulir POST. Contoh:

  • Saat Content type adalah application/x-www-form-urlencoded: key1=value&key2=value2.

  • Saat Content type adalah application/json: {"key1":"val1","key2":"val2"}.

Cookie

Contohnya, key1=val1;key2=val2. Pisahkan beberapa nilai dengan tanda titik koma (;). Panjang maksimumnya adalah 300 byte.

Execution mode

  • serverless: Server memulai permintaan, memerlukan URL yang dapat diakses publik.

  • agent: Client memulai permintaan, memerlukan agen SchedulerX yang telah di-deploy. Anda dapat mengonfigurasi URL internal. Mode ini hanya didukung untuk versi client 1.8.2 ke atas. Untuk men-deploy agen SchedulerX, lihat Akses Agen (untuk skrip atau pekerjaan HTTP).

Konfigurasi Lanjutan

Task Failure Retry Count

Jumlah kali percobaan ulang setelah pekerjaan gagal. Nilai default adalah 0.

Retry Interval

Interval antar percobaan ulang setelah pekerjaan gagal. Nilai default adalah 30 detik.

Task Concurrency

Jumlah maksimum instans pekerjaan yang sama yang diizinkan berjalan secara konkuren. Nilai 1 mencegah eksekusi konkuren. Jika batas konkurensi terlampaui, jadwal saat ini dilewati.

Cleanup Policy

Kebijakan pembersihan untuk riwayat eksekusi Pekerjaan. Secara default, kebijakan ini menyimpan N Catatan terakhir, di mana N adalah Record Count.

  • Simpan N catatan terakhir.

  • Simpan N catatan terakhir berdasarkan status.

Record Count

Jumlah catatan eksekusi historis yang disimpan untuk pekerjaan. Nilai default adalah 300.

Langkah 2: Konfigurasi waktu

Pada halaman Schedule Configuration wizard penyiapan, atur parameter waktu dan parameter Konfigurasi Lanjutan, lalu klik Next.

Parameter waktu dijelaskan di bawah ini:

Parameter

Deskripsi

Time Type

  • none: Menonaktifkan penjadwalan otomatis. Pekerjaan biasanya dipicu oleh alur kerja.

  • cron: Ekspresi cron.

  • api: Dipicu melalui API.

  • fixed_rate: Frekuensi tetap.

  • second_delay: Penundaan tetap dalam detik.

  • onetime: Pekerjaan sekali jalan.

Cron Expression (hanya untuk tipe waktu cron)

Masukkan ekspresi cron. Anda dapat menulisnya langsung mengikuti sintaks Cron atau menggunakan alat untuk menghasilkan dan memvalidasinya.

Fixed frequency (hanya untuk tipe waktu fixed_rate)

Masukkan frekuensi tetap dalam detik. Nilai harus 60 detik atau lebih. Misalnya, 200 berarti menjadwalkan setiap 200 detik.

Fixed delay (hanya untuk tipe waktu second_delay)

Masukkan penundaan tetap dalam detik. Rentangnya dari 1 hingga 60 detik. Misalnya, 5 berarti penundaan 5 detik sebelum memicu jadwal.

Scheduled Time (hanya untuk tipe waktu sekali jalan)

Pilih tanggal dan waktu. Misalnya, 2025-4-2 12:00:00 menjadwalkan pekerjaan sekali.

Konfigurasi Lanjutan

Time offset

Offset waktu data relatif terhadap waktu jadwal. Anda dapat memperoleh nilai ini dari konteks selama penjadwalan.

Time Zone

Anda dapat memilih zona waktu berbeda sesuai kebutuhan, termasuk negara atau wilayah umum, serta format GMT standar.

Calendar

Tetapkan kalender efektif untuk pekerjaan.

  • Jadwalkan setiap hari.

  • Tentukan kalender, seperti hari keuangan atau hari kerja.

Effective Time

Tetapkan waktu efektif untuk pekerjaan.

  • Berlaku segera.

  • Waktu mulai: Memerlukan pemilihan tanggal dan waktu mulai.

Langkah 3: Konfigurasi notifikasi

Pekerjaan HTTP mendukung peringatan kegagalan. Ketika terjadi masalah seperti timeout atau nilai kembali yang tidak sesuai, Anda dapat mengatur aturan peringatan saat pembuatan pekerjaan untuk menerima notifikasi yang sesuai.

  1. Pada halaman Notification Configuration wizard penyiapan, atur parameter peringatan dan kontak, lalu klik Complete.

    Parameter yang dapat dikonfigurasi meliputi: Timeout alert (diaktifkan), Timeout period (dalam detik), Terminate on timeout (dinonaktifkan), Success notification (dinonaktifkan), Failure alert (diaktifkan), Consecutive failures (diatur ke 1), dan No available machine alert (diaktifkan). Untuk Notification channels and contacts, Anda dapat memilih Application group contacts atau Custom.

  2. Setelah pekerjaan berhasil dibuat, buka halaman Task management dan klik Run Once pada kolom Actions untuk pekerjaan target.

    Pada halaman detail catatan instans pekerjaan, lihat hasil eksekusi dan log.

Dapatkan informasi dasar pekerjaan

Informasi dasar untuk pekerjaan HTTP berada di header. Untuk mendapatkan informasi ini, Anda perlu menambahkan dependensi berikut ke file pom.xml client Anda.

<dependency>
    <groupId>com.aliyun.schedulerx</groupId>
    <artifactId>schedulerx2-common</artifactId>
    <version>1.6.0</version>
</dependency>

Contoh berikut menunjukkan cara mendapatkan informasi dasar pekerjaan menggunakan metode GET.

import com.alibaba.schedulerx.common.constants.CommonConstants;
@GET
@Path("hi")
@Produces(MediaType.APPLICATION_JSON)
public RestResult hi(@QueryParam("user") String user,
        @HeaderParam(CommonConstants.JOB_ID_HEADER) String jobId,
        @HeaderParam(CommonConstants.JOB_NAME_HEADER) String jobName) {
    TestVo vo = new TestVo();
    vo.setName("armon");
    // Jika jobName berisi karakter Tionghoa, perlu dilakukan URL-decoding.
    String decodedJobName = URLDecoder.decode(jobName, "utf-8");
    System.out.println("user=" + user + ", jobId=" + jobId + ", jobName=" + decodedJobName);
    RestResult result = new RestResult();
    result.setCode(200);
    result.setData(vo);
    return result;
}

Definisi konstanta pekerjaan

Tabel berikut menjelaskan informasi dasar untuk CommonConstants.

Konstanta

Kunci

Deskripsi

JOB_ID_HEADER

schedulerx-jobId

ID pekerjaan.

JOB_NAME_HEADER

schedulerx-jobName

Nama pekerjaan.

SCHEDULE_TIMESTAMP_HEADER

schedulerx-scheduleTimestamp

Timestamp waktu penjadwalan.

DATA_TIMESTAMP_HEADER

schedulerx-dataTimestamp

Timestamp waktu data.

GROUP_ID_HEADER

schedulerx-groupId

ID aplikasi.

USER_HEADER

schedulerx-user

Nama pengguna.

MAX_ATTEMPT_HEADER

schedulerx-maxAttempt

Jumlah maksimum percobaan ulang untuk instans.

ATTEMPT_HEADER

schedulerx-attempt

Jumlah percobaan ulang saat ini untuk instans.

JOB_PARAMETERS_HEADER

schedulerx-jobParameters

Parameter pekerjaan.

INSTANCE_PARAMETERS_HEADER

schedulerx-instanceParameters

Parameter untuk instans pekerjaan tertentu, diteruskan saat memicu pekerjaan melalui API.

Verifikasi hasil

Anda dapat memeriksa hasil eksekusi pekerjaan HTTP di halaman daftar eksekusi. Untuk informasi tentang hasil sukses, lihat GET.

Jika pekerjaan gagal, klik Details untuk melihat alasan spesifik kegagalannya, seperti di bawah ini:

  • Nilai yang dikembalikan berbeda dari nilai yang diharapkan. Bidang Result or Error Message pada halaman detail instans menunjukkan penyebab spesifik kegagalan. Misalnya, pesan error The returned value is different from the expected value menunjukkan bahwa "success":false dalam JSON yang dikembalikan tidak sesuai dengan nilai yang diharapkan, sehingga pekerjaan gagal.

  • Timeout eksekusi. Saat eksekusi pekerjaan HTTP mengalami timeout, bidang Result or Error Message pada halaman detail instans menunjukkan pengecualian java.net.SocketTimeoutException, yang menunjukkan timeout koneksi socket.