python - Bagaimana untuk menambah tugas secara dinamik semasa menjalankan penjadual pukulan saderi?
某草草2017-05-18 10:56:10
0
2
2173
Saya mencuba django-celery-beat Menambah tugasan di latar belakang pentadbir boleh mencapai penambahan tugasan yang dinamik Tetapi ia akan berkuat kuasa hanya selepas memulakan semula celery beat.
Ada idea yang boleh anda pertimbangkan Saya sedang mencuba kaedah ini dan sedang dalam peringkat cuba menyeberangi sungai dengan merasai batu. Saderi menyokong tugas berjadual, tetapi ia tidak memenuhi keperluan saya. Saya perlu menambah tugas berjadual secara dinamik seperti crontab di bawah Linux. Saya juga melihat django-celery-beat , jadi saya telah Selepas membaca dokumentasi dan mencari maklumat, saya akhirnya menemui cara Fungsi apply_async adalah sangat berguna Ia mempunyai parameter eta yang dipermudahkan ialah undur, tetapi kuasa eta adalah besar kerana ia hanya menerima datetime objects , sebagai contoh, jika anda memberikan tugasan untuk dilaksanakan pada 2017-05-02 20:0:0, anda boleh menggunakannya seperti ini:
Adakah ia jarang digunakan? Jika saya mempunyai tugas yang perlu dilaksanakan pada pukul lapan setiap malam, saya boleh menggunakan parameter eta untuk mencapainya. Kod pseudo adalah seperti berikut:
Satu perkara yang sangat penting di sini ialah cara mengira masa pelaksanaan seterusnya apabila tugasan berjaya dilaksanakan Caranya adalah seperti berikut
Ia menyediakan fungsi untuk kejayaan dan kegagalan pelaksanaan tugas Kami hanya perlu menulis semula atas dasar ini Saya hanya bercakap tentang bahagian teras Terdapat banyak cara untuk melakukannya secara khusus
Tidak boleh ditambah secara dinamik, rentak mesti dimulakan semula.
tanya jawab sebab #3493
Ada idea yang boleh anda pertimbangkan Saya sedang mencuba kaedah ini dan sedang dalam peringkat cuba menyeberangi sungai dengan merasai batu. Saderi menyokong tugas berjadual, tetapi ia tidak memenuhi keperluan saya. Saya perlu menambah tugas berjadual secara dinamik seperti crontab di bawah Linux. Saya juga melihat django-celery-beat , jadi saya telah Selepas membaca dokumentasi dan mencari maklumat, saya akhirnya menemui cara Fungsi apply_async adalah sangat berguna Ia mempunyai parameter eta yang dipermudahkan ialah undur, tetapi kuasa eta adalah besar kerana ia hanya menerima datetime objects , sebagai contoh, jika anda memberikan tugasan untuk dilaksanakan pada 2017-05-02 20:0:0, anda boleh menggunakannya seperti ini:
job.apply_async(args=args, kwarg=kwargs, eta=datetime(2017,5,2,20,0,0))
Adakah ia jarang digunakan? Jika saya mempunyai tugas yang perlu dilaksanakan pada pukul lapan setiap malam, saya boleh menggunakan parameter eta untuk mencapainya. Kod pseudo adalah seperti berikut:
Satu perkara yang sangat penting di sini ialah cara mengira masa pelaksanaan seterusnya apabila tugasan berjaya dilaksanakan Caranya adalah seperti berikut
Ia menyediakan fungsi untuk kejayaan dan kegagalan pelaksanaan tugas Kami hanya perlu menulis semula atas dasar ini Saya hanya bercakap tentang bahagian teras Terdapat banyak cara untuk melakukannya secara khusus