我正在创建一个带有后台工作人员的 Rails Web 应用程序,以便在设定的时间间隔内在后台执行一些任务。我正在使用 Resque 和 Redis 来对后台作业进行排队,并使用 Resque-scheduler 以设置的间隔运行它,例如每 30 秒左右。
只有当用户访问特定页面时,后台作业才需要排队,并且它应该按计划运行,直到用户离开该页面。基本上,我想在运行时动态设置时间表。我的应用程序部署在 Cloud 中,主 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