0

私は次のことをしようとしています:

  1. 15分ごとにワーカーとその中のメソッドを実行します
  2. データベーステーブルbdrd_job_queueに、最後の実行時のジョブのログを記録します。

私がしたこと:

backgroundRB.ymlファイルに15分ごとのスケジュールがあります

メソッド呼び出しには呼び出しがありますが、オブジェクトがnilpersistent_job.finish!であるため、機能していません。persistent_job

DBにログインしているが、backgroundRB.ymlから自動的にスケジュールされていることを確認するにはどうすればよいですか?

4

1 に答える 1

0

やっとできました。

回避策は、すぐに実行するようにスケジュールされた、データベースにキューに入れるタスクをスケジュールすることです。

あなたの労働者で..。

class NotificationWorker < BackgrounDRb::MetaWorker
  set_worker_name :notification_worker

  def create(args = nil)
  end

  def queue_notify_changes(args = nil)
    BdrbJobQueue.insert_job(:worker_name => 'notification_worker',
                            :worker_method => 'notify_new_changes_DAEMON',
                            :args => 'hello_world',
                            :scheduled_at => Time.now.utc,
                            :job_key => 'email_changes_notification_task')
  end
  def notify_new_changes_DAEMON
     #Do Incredibly cool stuff here
  end

設定ファイルbackgroundrb.yml

--- 
:backgroundrb: 
  :ip: 0.0.0.0
  :port: 11006
  :environment: production
  :log: foreground
  :debug_log: true
  :persistent_disabled: false
  :persistent_delay: 10

:schedules:
  :notification_worker:
    :queue_notify_changes:
      :trigger_args: 0 0 0 * * *
于 2009-11-06T18:00:00.660 に答える