cari

Rumah  >  Soal Jawab  >  teks badan

java - 一个项目在集群中运行,如何让定时任务只运行一次?

一个项目在集群中运行,如何让定时任务只运行一次?不加限制就会导致重复计算的问题。

黄舟黄舟2882 hari yang lalu1133

membalas semua(8)saya akan balas

  • PHP中文网

    PHP中文网2017-04-18 10:34:05

    Untuk Java, disyorkan untuk menggunakan kuarza
    1. Kuarza sangat mudah untuk melakukan pelbagai tugasan yang dijadualkan
    2 satu perkhidmatan melalui jadual pangkalan data.

    balas
    0
  • ringa_lee

    ringa_lee2017-04-18 10:34:05

    Dengan mengandaikan bahawa anda menggunakan quartz dengan cara yang paling mudah, maka anda perlu mengubah suainya dalam kod dan menambah operasi mendapatkan kunci dalam logik kerja Kunci ini boleh digunakan dalam pangkalan data : masukkan perniagaan yang bermakna Apabila melaksanakan rekod kunci utama, hanya satu kerja yang sama dalam kelompok akan berjaya dimasukkan, yang bermaksud ia telah memperoleh kunci dan boleh dilaksanakan Jika tidak, tugas itu akan dikeluarkan dan tidak dilaksanakan.

    balas
    0
  • PHP中文网

    PHP中文网2017-04-18 10:34:05

    Konfigurasikan Pengelompokan dengan JDBC-JobStore

    Ciri pengelompokan kuarza membawa kedua-dua ketersediaan dan kebolehskalaan yang tinggi kepada penjadual anda melalui fungsi kegagalan dan pengimbangan beban.

    Kuarza sendiri menyokong pengelompokan, toleransi kesalahan dan pengimbangan beban. Ini boleh dicapai tanpa mengubah sebarang kod.

    balas
    0
  • 巴扎黑

    巴扎黑2017-04-18 10:34:05

    rangka kerja kuarza menyokong pengelompokan

    balas
    0
  • ringa_lee

    ringa_lee2017-04-18 10:34:05

    Anda boleh membina sistem perisian tengah yang secara khusus mengurus pencetusan tugas berjadual dan langganan serta penggunaan mesej Apabila masa dicetuskan, mesej akan dihantar dan sistem kluster akan melanggan mesej ini. Mesej boleh dihantar secara rawak ke mana-mana mesin dalam kluster.

    balas
    0
  • ringa_lee

    ringa_lee2017-04-18 10:34:05

    Mesin akan menyiarkan mesej ke mesin lain apabila ia mula menentukan masa. Tetapi selang masa setiap mesin adalah masalah. Semuanya dihidupkan dengan kerap sebelum mesej dihantar...

    balas
    0
  • 阿神

    阿神2017-04-18 10:34:05

    1. Gunakan zookeeper, redis, dsb. untuk menyimpan status pelaksanaan tugas berjadual dan maklumat lain secara manual untuk memastikan ia dilaksanakan sekali sahaja.

    2. Ekstrak tugas berjadual ke dalam projek berasingan (dijalankan pada satu mesin), tetapi kandungan khusus tugas itu memanggil perkhidmatan teragih tertentu melalui panggilan jauh (dubbo, mq, dsb.). Maksudnya, tugas berjadual hanya digunakan untuk mencetuskan tugas sahaja, dan tugas khusus dilaksanakan dalam cara yang diedarkan.

    3. Gunakan pelbagai sistem penjadualan tugas yang diedarkan, seperti Uncode-Schedule

    balas
    0
  • PHP中文网

    PHP中文网2017-04-18 10:34:05

    Cenderung untuk mencipta program yang berdiri sendiri

    balas
    0
  • Batalbalas