我正在使用delayed_job,並且能夠使用rake作業運行作業:工作但使用守護程序版本,儘管我在進程列表中看到它,但它沒有執行任何操作。Delayed_job守護進程沒有在開發中運行嗎?
我使用:
- 軌(3.0.9)
- 的delayed_job(2.1.4)
- 守護程序(1.0.10)
我跑的delayed_job使用:
unix>RAILS_ENV=development script/delayed_job start
我正在使用delayed_job,並且能夠使用rake作業運行作業:工作但使用守護程序版本,儘管我在進程列表中看到它,但它沒有執行任何操作。Delayed_job守護進程沒有在開發中運行嗎?
我使用:
我跑的delayed_job使用:
unix>RAILS_ENV=development script/delayed_job start
要回答你的問題,我們可能需要更多形成。
作業已添加到數據庫?工作中是否有錯誤?
RAILS_ENV=development script/delayed_job status
結果如我剛纔提到的那樣?
二,您是否遇到過維基頁面最常見的問題?
https://github.com/collectiveidea/delayed_job/wiki/Common-problems
這可能是加載自定義作業類文件的一個問題。要測試一下,試試這個:
rails console --sandbox
。job = Delayed::Job.first
有工作。YAML.load(job.handler)
。如果看到如下所示的錯誤:ArgumentError: undefined class/module MyCustomClass
,這可能是加載自定義作業時出現的問題require 'My_Custom_Class
。然後再次運行YAML.load(job.handler)
命令。如果這返回適當的對象,那肯定是一個類加載問題。要解決該問題,請創建文件config/initializers/custom.rb
並在其中放入require 'My_Custom_Class'
。
然後,您應該能夠運行rake jobs::workoff
和得到的東西看起來是這樣的:
[Worker(host:my.host pid:5085)] Starting job worker
[Worker(host:my.host pid:5085)] MyCustomJob completed after 0.0774
[Worker(host:my.host pid:5085)] 1 jobs processed at 9.1935 j/s, 0 failed ...
[Worker(host:my.host pid:5085)] No more jobs available. Exiting
什麼是'RAILS_ENV =發展腳本/ delayed_job的status'的結果呢? – Ernest
你是否試圖在沒有守護進程的情況下運行它? – Ernest
Gemfile.lock表明守護進程是必需的依賴項,但我將刪除顯式使用並嘗試它。我這樣做的原因是嘗試並強制Daemonize使用特定版本(因爲我在守護進程中使用了1.0.10,所以圍繞使用1.0.10的守護進程提供了很多StackOverflow建議),因爲我在系統上有守護進程1.1.4。 – Aditya