Flynn: Apakah flynn mendukung cron atau tugas terjadwal?

Dibuat pada 27 Jan 2016  ·  13Komentar  ·  Sumber: flynn/flynn

Akan senang dapat memiliki fungsi seperti cron yang mirip dengan penjadwal heroku.

Terbaik,
Jon

kinenhancement

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:

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 jam
  • Procfile - 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

Semua 13 komentar

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

  • * * * * php /path/to/artisan schedule:run >> /dev/null 2>&1

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 jam
  • Procfile - 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.

Apakah halaman ini membantu?
0 / 5 - 0 peringkat

Masalah terkait

tuukkamustonen picture tuukkamustonen  ·  5Komentar

philiplb picture philiplb  ·  4Komentar

airways picture airways  ·  4Komentar

lmars picture lmars  ·  4Komentar

lmars picture lmars  ·  3Komentar