Akan senang dapat memiliki fungsi seperti cron yang mirip dengan penjadwal heroku.
Terbaik,
Jon
Saat ini tidak, meskipun kami akan membiarkan masalah ini terbuka sebagai permintaan fitur. Untuk saat ini Anda dapat menjalankan jenis proses yang melihat jam dan bekerja pada waktu yang tepat.
+1
@titanous Jika Anda memiliki proses clock
di Procfile Anda (seperti yang disebutkan dalam docs ), proses jam itu akan terjadi pada N host yang berbeda, bukan? Yang berarti terserah proses itu (atau tugas latar belakang apa pun yang dihasilkan) untuk bekerja secara idempoten, benar?
Hanya memeriksa pemahaman saya sendiri. 😄
@lperiodbose Ya, Anda bertanggung jawab atas idempotensi. Tidak ada jaminan bahwa hanya akan ada satu proses clock yang berjalan, meskipun penjadwal akan cenderung ke arah tujuan hanya satu proses yang berjalan. Saya sarankan menggunakan database postgres untuk koordinasi, karena memberikan jaminan konsistensi yang kuat.
Saya juga akan menyukai ini. Menggunakan jarum jam itu bagus, tetapi jika saya menggunakan aplikasi Golang, saya tidak ingin Flynn mendeteksi bahwa aplikasi saya adalah aplikasi Ruby, murni dengan kehadiran Gemfile.
+1 untuk ini.
Saya agak bingung dengan solusi jam :/
Saya menggunakan laravel (kerangka PHP) dan saya membutuhkan masing-masing dari 8 situs web saya (lebih banyak lagi) untuk menjalankan ini
Bagaimana saya bisa melakukannya?
@parweb jika Anda ingin menggunakan permata Ruby jarum jam , Anda harus terlebih dahulu mengonfigurasi aplikasi Anda untuk menggunakan buildpack PHP dan Ruby dengan menambahkan dan melakukan file .buildpacks
dengan konten berikut:
https://github.com/heroku/heroku-buildpack-php.git
https://github.com/heroku/heroku-buildpack-ruby.git
Anda kemudian perlu menambahkan dan mengkomit file dari Intisari ini:
https://Gist.github.com/lmars/f32ad542dea9b34c2c79e63ceef0e15a
Penjelasan masing-masing file:
clock.rb
- ini adalah definisi acara jarum jam Anda (lihat https://github.com/tomykaira/clockwork#anatomy-of-a-clock-file)Gemfile
dan Gemfile.lock
- ini menginstruksikan Ruby buildpack untuk menginstal permata jarum jamProcfile
- ini memberitahu Flynn cara memulai jenis proses clock
Dorong perubahan itu lalu skalakan jenis proses jam dengan flynn scale clock=1
. Anda dapat melihat output jarum jam dengan:
$ flynn log -t clock
Jika sesederhana menjalankan setiap detik, Anda juga dapat menggunakan skrip bash sebagai jenis proses jam:
while true; do
php /path/to/artisan schedule:run
sleep 1
done
Jika aplikasi Anda berbasis Python dan tidak suka memperkenalkan alat lain di tumpukan, Anda dapat menggunakan APScheduler
dijelaskan di sini https://devcenter.heroku.com/articles/clock-processes-python
Atau, ada juga Celery Beat.
Terima kasih atas semua balasan Anda.
Saya akan mencoba solusi @lmars tampaknya lengkap untuk otomatisasi.
@titanous Bisakah Anda menjelaskan lebih lanjut cara menggunakan skrip bash?
Flynn tidak dirawat dan infrastruktur kami akan ditutup pada 1 Juni 2021. Lihat README untuk detailnya.
Komentar yang paling membantu
@parweb jika Anda ingin menggunakan permata Ruby jarum jam , Anda harus terlebih dahulu mengonfigurasi aplikasi Anda untuk menggunakan buildpack PHP dan Ruby dengan menambahkan dan melakukan file
.buildpacks
dengan konten berikut:Anda kemudian perlu menambahkan dan mengkomit file dari Intisari ini:
https://Gist.github.com/lmars/f32ad542dea9b34c2c79e63ceef0e15a
Penjelasan masing-masing file:
clock.rb
- ini adalah definisi acara jarum jam Anda (lihat https://github.com/tomykaira/clockwork#anatomy-of-a-clock-file)Gemfile
danGemfile.lock
- ini menginstruksikan Ruby buildpack untuk menginstal permata jarum jamProcfile
- ini memberitahu Flynn cara memulai jenis prosesclock
Dorong perubahan itu lalu skalakan jenis proses jam dengan
flynn scale clock=1
. Anda dapat melihat output jarum jam dengan: