Halo,
Saya telah membuat garpu untuk menguji sebuah konsep. Kami menggunakan Foreman terutama dalam pengembangan untuk menjalankan Redis, pekerja Resque dan penjadwal Resque. Pekerja dan penjadwal ini bergantung pada Redis untuk dimulai dan dalam beberapa kasus gagal karena itu.
Versi di https://github.com/rvanlieshout/foreman mendukung definisi ketergantungan di Procfile. Untuk saat ini hanya menggunakan penundaan 5 detik untuk memungkinkan orang tua memulai. Profil dapat terlihat seperti:
mongodb: mongod --quiet --dbpath=db/mongo/
| redis: redis-server /opt/local/etc/redis.conf
| | worker: bundle exec rake environment resque:work QUEUE=* VERBOSE=1 RAILS_ENV=development
| | scheduler: bundle exec rake resque:scheduler QUEUE=* VERBOSE=1 RAILS_ENV=development
post_office: post_office --smtp 10025 --pop3 10110
(Catatan: Redis tidak bergantung pada Mongo di sini ... hanya untuk menunjukkan)
Ketika "mandor start" dijalankan, Mongo dan PostOffice dimulai terlebih dahulu, diikuti oleh Redis setelah 5 detik dan pekerja dan penjadwal setelah 10.
Versi Foreman ini kompatibel ke belakang, tetapi menimbulkan beberapa masalah / pertanyaan lain:
Jadi... Pernahkah Anda memiliki pertanyaan terkait ketergantungan sebelumnya? Apakah Anda pikir solusi ini mungkin sesuatu yang akan dimasukkan dalam versi Foreman yang akan datang?
Dan... terima kasih untuk proyek ini! Ini sangat membantu kami meningkatkan alur kerja pengembangan kami.
Sebenarnya tidak ada cara untuk mengetahui kapan sesuatu "siap" selain mendeteksi jika telah terikat ke port yang ditetapkan. Tidak semua proses mengikat ke port, dan saya lebih suka tidak memperkenalkan hubungan yang agak rumit ini ke mandor.
Jika Anda merasa sangat ingin, Anda dapat membuat proses Anda dibungkus dengan skrip yang melihat sesuatu yang lain tersedia sebelum memulai proses yang dimaksud.
Bersulang,
David
Saya akan menyukai ini :( - Saya memiliki banyak proses RTSPProxy dan RTSPClient dan saya ingin menunda memulai klien.
Sudah dilaksanakan belum?