Ruby / Rails - 每当宝石 - 循环cron任务 [英] Ruby/Rails - Whenever gem - Loop cron tasks
本文介绍了Ruby / Rails - 每当宝石 - 循环cron任务的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
我想通过我的管理页面来控制我的cron作业。
基本上我的数据库中有我的cronjobs,并且我想创建我的crontab即时。
I would like to control my cron jobs through my administration page.
Basically I have my cronjobs in my database, and I would like to create my crontab "on the fly".
下面是一个例子:
Here's an example:
require "#{RAILS_ROOT}/config/environment.rb"
Cron.all.each do |cron|
if cron.at.blank?
every eval(cron.run_interval) do
cron.cmd
end
else
every eval(cron.run_interval), :at => cron.time do
cron.cmd
end
end
end
every 1.day do
command "whenever --update-crontab"
end
但每当不输出循环内的任何任务,只输出静态任务。
But Whenever doesn't output any of the tasks inside the loop, only the "static" one.
0 0 * * * whenever --update-crontab
我怎样才能让每当'理解'我的循环?
How can I make Whenever 'understand' my loop?
推荐答案
You probably need to move your eval statement higher up, for example:
您可能需要将您的eval语句更高一些。
every#{cron.run_interval} do
#{cron.cmd}
end
EVAL
eval <<-EVAL every #{cron.run_interval} do #{cron.cmd} end EVAL
假设您的cron.cmd与command类似ls -a'。
Assuming that your cron.cmd is something like 'command "ls -a"'.
这篇关于Ruby / Rails - 每当宝石 - 循环cron任务的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!
查看全文