私は現在、site5 サーバーを使用しており、ほぼ常に実行したいと考え
rake jobs:work
ています。現在、サーバーにログインしていないとジョブを送信できません。誰かがこれで私を助けてくれることを願っています。ar_mailer
と宝石で多くの問題がありましたwhenever
...しかし、私のレールアプリ内で完全に機能する約5つの宝石があります。
誰かがこれの解決策に光を当てることができますか? 大変感謝しています。(delayed_job をプラグインとしてインストール)
私は現在、site5 サーバーを使用しており、ほぼ常に実行したいと考え
rake jobs:work
ています。現在、サーバーにログインしていないとジョブを送信できません。誰かがこれで私を助けてくれることを願っています。ar_mailer
と宝石で多くの問題がありましたwhenever
...しかし、私のレールアプリ内で完全に機能する約5つの宝石があります。
誰かがこれの解決策に光を当てることができますか? 大変感謝しています。(delayed_job をプラグインとしてインストール)
OKこれには回避策があります。これは最善の方法ですが、ある程度は機能します...CRONジョブとカスタムスクリプト/ジョブランナーファイルを使用しました。
にあるジョブランナースクリプトを作成しました。このスクリプトにscript/jobrunner
は、次のものが含まれています。
#!/usr/bin/env ruby
require File.dirname(__FILE__) + '/../config/environment'
Delayed::Worker.new.start
次に、cronジョブで、そのファイルを実行させました。
cronレポートでは、まだいくつかのエラーが発生しますが、ジョブは実行され、満足しています。
たとえば、cronジョブは1時間ごとに50分に実行され、テーブル内のすべてのdelayed_jobsを調べて、それらを処理します。これは、私の問題に対して私が見つけた次善の回避策です。これが将来誰かを助けることを願っています。
毎日/毎週のタスクのために私が思いつくことができる他のスクリプトを見に行きます。
遅延ジョブには、バックグラウンドで開始し、log/delayed_job.log に記録するためのスクリプトが付属しています。次のように、開発モードで実行されているデーモン化されたdelayed_jobを開始できます。
RAILS_ENV=development script/delayed_job start
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"