Saya punya proses pekerja yang memproses 1 pesan RabbitMq sekaligus. Saat ini, segera setelah pekerja keluar, supervisor akan memulai kembali (yang akan memproses pesan berikutnya).
Saya ingin menetapkan interval X detik, sehingga pengawas tidak memulai kembali dengan segera, tetapi menunggu sejumlah waktu tertentu sebelum memulai pekerja lain.
Apakah ini mungkin? Bagaimana?
sumber
Saya membutuhkan cara sederhana untuk menjalankan perintah dari dalam wadah buruh pelabuhan, di mana tidak ada cron. Inilah yang saya gunakan:
beginecs = 0 memastikan bahwa penyelia mengira perintah itu mulai berhasil bahkan jika ia keluar setelah beberapa detik. Kalau tidak, pengawas akan berhenti me-restart, berpikir itu dalam satu lingkaran.
Inilah yang akan Anda lihat di /root/date.ts dengan contoh di atas:
Sesuaikan tidur sesuai keinginan Anda dan ganti 'tanggal >> / root / test.ts' dengan apa pun yang Anda butuhkan.
Solusi ini juga berguna jika Anda perlu menjalankan cronjob lebih sering daripada setiap menit.
sumber
lalu
1. Anda perlu menggunakan
exec
perintah, jika tidak maka akan membayar subprogres darisleep 60 && exec your command
dan kemajuan Anda akan terlihat seperti berikutdan kemudian ketika Anda gunakan
supervisorctl
untuk menghentikan urApp, Anda akan menghentikan kemajuan 1818 dan meninggalkan 3872 kemajuan anak yatim2. merekomendasikan untuk mengubah mulai untuk 5 lebih dari detik tidur, maka ketika Anda memulai aplikasi ini dan memeriksa statusnya, itu akan menunjukkan kepada Anda itu mulai
lain jika Anda menetapkan nilai kurang dari detik tidur, ketika Anda memulai aplikasi dan memeriksa status, Anda akan mendapatkan status berlari, tetapi masih tidur cmd sebelum eksekusi nyata
3. ketika Anda mengubah file konfigurasi Anda, Anda perlu menggunakan ulang cmd atau hanya restart supervisor Anda untuk membuatnya berfungsi
sumber