我對此很陌生,對於Delayed Job的工作原理有點困惑。延遲作業在Ruby on Rails中如何工作?
我知道它創建一個表,並把作業在表中,然後我需要運行
rake jobs:work
啓動後臺進程。現在我的問題是
DJ腳本是否每分鐘檢查一次表格,當時間與job_at匹配時,它會運行那個工作?
如果腳本每分鐘檢查一次表格,它與cron(每當寶石)有什麼不同?
感謝
我對此很陌生,對於Delayed Job的工作原理有點困惑。延遲作業在Ruby on Rails中如何工作?
我知道它創建一個表,並把作業在表中,然後我需要運行
rake jobs:work
啓動後臺進程。現在我的問題是
DJ腳本是否每分鐘檢查一次表格,當時間與job_at匹配時,它會運行那個工作?
如果腳本每分鐘檢查一次表格,它與cron(每當寶石)有什麼不同?
感謝
- 不DJ腳本檢查表中的每一分鐘,到時job_at時間相匹配,它運行的工作嗎?
當你運行rake jobs:work
DelayedJob將輪詢delayed_jobs
表,執行工作,如果它被設置匹配job_at
列值。這部分你是正確的。
- 如果腳本只是每分鐘檢查一次,它與cron(每當gem)有什麼不同?
whenever
是寶石,可幫助您配置一個crontab。它沒有任何東西直接與定期執行您的服務器上的任務。
您可能設置一個cron運行在每分鐘隊列中所有任務存在的,但留下一個delayed_job
daemon在運行,有多方面的好處。
delayed_job
的守護進程會看到並執行任何任務隊列中的cron之間的1分鐘的窗口中運行如果你想通過cron配置delayed_job
每一分鐘,你可以添加這樣的事情你的crontab
* * * * * RAILS_ENV=production script/delayed_job start --exit-on-complete
每一分鐘,delayed_job的就會旋轉起來,執行任何工作都已經準備好了或它必須從先前失敗的運行重試,然後退出。 我不推薦這個。將late_job設置爲守護進程是正確的選擇。
不DJ腳本檢查表中的每一分鐘,到時 job_at時間相匹配,它運行的工作嗎?
是的。它每5秒檢查一次數據庫。
它如何不同於cron(每當寶石)如果腳本只是 每分鐘檢查一次表格?
在背景工作的背景下,他們沒有那麼不同。他們的主要區別是他們通常如何經營這些工作。
DJ | Crontab
uses additional database | you should either set up a rake task
table but that's it. easier | or a runner which can be called on the
to code compared to crontab | crontab
------------------------------|------------------------------------------
requires you to run a worker | requires you to setup your cron which
that will poll the database | you can easily do using the whenever gem
------------------------------|------------------------------------------
since this uses a table, it | you have to setup some sort of logging so
is easier to debug errors | that you have an idea what caused the error
when they happen |
------------------------------|------------------------------------------
the worker should always be | as long as your crontab is set up properly,
running to perform the job | you should have no issues
------------------------------|------------------------------------------
harder to setup recurring | easy to setup recurring tasks
tasks |
------------------------------|------------------------------------------
令人驚歎的答案jvnill,謝謝 – iCyborg 2013-02-22 16:44:45
!/我猜是2 /它處理的優先級,重試政策等... – apneadiving 2013-02-22 13:07:48