3

私は次の宝石を使用しています:

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の理由は何ですか?どこで間違いをしますか?前もって感謝します

4

1 に答える 1

4

Rails環境を本番環境に設定してもよろしいですか?

script/delayed_job start

また

RAILS_ENV=development script/delayed_job start
于 2013-03-17T13:37:24.670 に答える