All Products
Search
Document Center

Microservices Engine:FAQ tentang pekerjaan Spring

Last Updated:Aug 21, 2026

Topik ini menyediakan jawaban atas pertanyaan umum mengenai pengelolaan pekerjaan Spring di SchedulerX.

Mengapa timer Spring asli tetap berjalan setelah SchedulerX mengambil alih pekerjaan Spring yang dijadwalkan?

Jika penjadwal kustom ditentukan dalam aplikasi Anda, SchedulerX akan menimpanya. Periksa apakah terdapat kelas yang mengimplementasikan antarmuka org.springframework.scheduling.annotation.SchedulingConfigurer dalam proyek aplikasi Anda, serta apakah metode setScheduler dari ScheduledTaskRegistrar dipanggil untuk menimpa penjadwal default. Jika kelas tersebut ada atau penjadwal default telah ditimpa, beri komentar pada kode terkait.

Bagaimana cara mendapatkan konteks untuk pekerjaan Spring?

Tambahkan kode berikut ke dalam proyek aplikasi Anda untuk mendapatkan konteks:

JobContext jobContext = ContainerFactory.getContainerPool().getContext();

Apakah pekerjaan Spring mengembalikan hasil pemrosesan?

Jika versi agen lebih baru dari 1.10.11, pekerjaan Spring dapat mengembalikan hasil pemrosesan. Hasil tersebut dikembalikan berdasarkan metode penjadwalan yang ditentukan.

@Scheduled(cron = "0/5 * * * * ?")
public ProcessResult helloStandalone1() {
    try {
        logger.info(DateUtil.now() + " " + Thread.currentThread().getName() + " hello world. start");
        TimeUnit.SECONDS.sleep(2L);
        logger.info(DateUtil.now() + " " + Thread.currentThread().getName() + " hello world. end");
    } catch (Exception e) {
        e.printStackTrace();
        logger.info(DateUtil.now() + " " + Thread.currentThread().getName() + " hello world. exception end..");
    }
    return new ProcessResult(true, "Processing result");
}

@Scheduled(cron = "0/5 * * * * ?")
public String helloStandalone2() {
    try {
        logger.info(DateUtil.now() + " " + Thread.currentThread().getName() + " hello world. start");
        TimeUnit.SECONDS.sleep(2L);
        logger.info(DateUtil.now() + " " + Thread.currentThread().getName() + " hello world. end");
    } catch (Exception e) {
        e.printStackTrace();
        logger.info(DateUtil.now() + " " + Thread.currentThread().getName() + " hello world. exception end..");
    }
    return "Processing result";
}