我正在编写一个每天在Schedule模型中定义的跑步者;
def self.scheduled_jobs
jobs = Schedule.where(execution_time <= Time.now )
if !jobs.nil?
jobs.each do |job|
task = Schedule.find(job)
MessageWorker.perform_async(task.message_id, task.lists, task.user_id)
task.destroy
end
end
end
这里的查询有问题;
jobs = Schedule.where(execution_time <= Time.now )
关于如何写得好的建议?
在控制台中响应是;
对于main:Object` , NameError: undefined local variable or method
execution_time'
总体而言,有关如何改进代码的任何建议?
每当cron工作在这里;
set :output, "/log/cron_log.log"
every 5.minute do
runner "Schedule.scheduled_jobs"
end
答案 0 :(得分:0)
假设列execution_time
确实存在,请尝试:
Schedule.where('execution_time <= ?', Time.now)
旁注:
您似乎正在向task.lists
传递给工作人员,但不应该是task.list_ids
?将模型对象传递给worker是不好的做法,而是传递id。