0

設定された間隔でバックグラウンドでいくつかのタスクを実行するためのバックグラウンド ワーカーを備えた Rails Web アプリケーションの作成に取り組んでいます。バックグラウンドジョブをキューに入れるためにRedisでResqueを使用し、Resque-schedulerを使用して、たとえば30秒ごとに設定された間隔で実行しています。

バックグラウンド ジョブは、ユーザーが特定のページにアクセスしたときにのみキューに入れる必要があり、ユーザーがそのページから移動するまでスケジュールに従って実行する必要があります。基本的に、実行時にスケジュールを動的に設定したいと思います。私のアプリケーションはクラウドにデプロイされ、メインの Rails アプリとバックグラウンド ワーカーは、Redis を介して通信する個別のプロセスとして実行されます。スケジュールを動的に設定するにはどうすればよいですか? どこからですか?

resque_schedule.yml

do_my_job:
  every: 1m
  class: BackgroundJob
  description: Runs the perform method in MyJob
  queue: backgroundq

コントローラー内部

  def index
    Resque.enqueue(BackgroundJob)
  end

background_job.rb

class BackgroundJob
  @queue = :backgroundq

  @job_helper = BackgroundHelper.new

  def self.perform
    @job_helper.get_job_data
  end

end
4

1 に答える 1