私は次の宝石を使用しています:
gem 'daemons', "=1.0.10"
gem 'delayed_job_active_record'
メソッドを遅らせるための次のコマンド:
after_create:perform_analysis handle_asynchronously:perform_analysis、:run_at => Proc.new {1.minutes.from_now}
script / delayd_job:
#!/usr/bin/env ruby
require File.expand_path(File.join(File.dirname(__FILE__), '..', 'config', 'environment'))
require 'delayed/command'
Delayed::Command.new(ARGV).daemonize
それで、私は通常のrailsでアプリケーションを起動します(tmp / pidsにはファイルserver.pidが表示されます)。いくつかのものをアップロードして、createメソッドが呼び出されるようにします。一部のデータはdelayed_jobsテーブルに挿入されます。サーバーの実行を停止します(tmp / pidsには何も存在しません!)。
次に、コマンドラインに書き込みます。
RAILS_ENV=production script/delayed_job start
応答:tmp / pidsにdelayed_job.pidが表示され、ターミナルに何も表示されないため、次を実行します。
kik@kik-VirtualBox:~/Desktop/tors15.01$ RAILS_ENV=production script/delayed_job status
pid-file for killed process 8695 found (/home/kik/Desktop/tors15.01/tmp/pids/delayed_job.pid), deleting.
delayed_job: no instances running
そして再び私の運を試します:
kik@kik-VirtualBox:~/Desktop/tors15.01$ RAILS_ENV=production script/delayed_job start
kik@kik-VirtualBox:~/Desktop/tors15.01$ RAILS_ENV=production script/delayed_job run
pid-file for killed process 8718 found (/home/kik/Desktop/tors15.01/tmp/pids/delayed_job.pid), deleting.
SQLite3::SQLException: no such table: delayed_jobs: UPDATE "delayed_jobs" SET locked_by = null, locked_at = null WHERE (locked_by = 'delayed_job host:kik-VirtualBox pid:8724')
私が調整rake jobs:work
すると、それは機能しています
このotの理由は何ですか?どこで間違いをしますか?前もって感謝します