我目前正在使用site5服務器,並且想要 rake jobs:work
幾乎一直在運行。 我目前無法發送作業,除非我登錄到服務器。我希望有人能幫助我。在ar_mailer
和whenever
寶石上遇到了很多麻煩......但還有另外5個寶石可以在我的Rails應用程序中完美工作。Delayed_Job - 現場5服務器
有人可以解釋一下這個問題嗎? 非常感謝。 (安裝delayed_job作爲插件)
我目前正在使用site5服務器,並且想要 rake jobs:work
幾乎一直在運行。 我目前無法發送作業,除非我登錄到服務器。我希望有人能幫助我。在ar_mailer
和whenever
寶石上遇到了很多麻煩......但還有另外5個寶石可以在我的Rails應用程序中完美工作。Delayed_Job - 現場5服務器
有人可以解釋一下這個問題嗎? 非常感謝。 (安裝delayed_job作爲插件)
OK我對此有一個解決辦法,這是我能做到的最好,但它工作在一定程度上... 我利用cron作業和自定義腳本/ jobrunner文件。
我創建了jobrunner腳本位於script/jobrunner
包含以下
#!/usr/bin/env ruby
require File.dirname(__FILE__) + '/../config/environment'
Delayed::Worker.new.start
然後在cron作業我做到了運行該文件。
在cron報告中,我仍然遇到一些錯誤,但工作仍在繼續,我很滿意!
例如,cron作業每半小時運行一次,它會遍歷表中的所有delayed_jobs並處理它們。這是我發現我的問題的下一個最佳解決方案。希望這可以幫助未來的人。
去看看我能爲日常/每週任務想出哪些其他腳本。
如果您正在使用capistrano,請在部署應用程序時啓動delayed_job。將其添加到您的部署配方文件中。
require 'delayed/recipes'
after "deploy:stop", "delayed_job:stop"
after "deploy:start", "delayed_job:start"
after "deploy:update_code", "delayed_job:stop"
after "deploy:restart", "delayed_job:start"
延遲作業附帶一個腳本,用於在後臺自行啓動並記錄到log/delayed_job.log。您可以啓動一個守護進程的delayed_job,像這樣在開發模式下運行:
RAILS_ENV=development script/delayed_job start
不幸的是不使用capistrano。而當我運行腳本/ delayed_job開始或腳本/ delayed_job重新啓動沒有錯誤引發,但工人不會在後臺運行。我仍然有我失去一些東西的感覺。 此外,當我運行腳本/ delayed_job運行我得到「未初始化常量Delayed :: Backend :: ActiveRecord :: Base」 必須有一些簡單的我想念。 感謝您的嘗試。 – 2010-04-05 04:40:33
嘗試http://github.com/collectiveidea/delayed_job分支。正在積極和積極地開發它,使其更加強大。 – 2010-04-05 13:00:10
再次感謝喬納森,我正在使用這一個,而不是因爲這個原因託比。它處理delayed_job並將其放入表中,唯一的問題是我想讓工作人員始終運行,而不必繼續調用「rake jobs:work」。我可以在配置初始化程序中設置延遲,這不是問題,即使設置了一個cron作業來完成此操作,出於某種原因,它只是不想工作...... :( – 2010-04-05 14:13:35