Tag: 预定任务

如何使用Clockwork Rails调度程序Gem?

我遇到了Clockwork调度程序进程的语法问题。 我实际上遇到的问题与此线程中讨论的内容类似,但从未完全回答( 如何使用Rails发条工具来运行rake任务? ) 当我使用’heroku rake send_notifications’测试时,我的’scheduler.rake’正常工作。 我的clock.rb进程也在工作,因为它会每30秒触发一次。 但是,我遇到了clock.rb的语法问题,无法在我的’rake.scheduler’中正确运行’send_notifications’任务。 这是它的样子: # scheduler.rake desc “This task is called by the Heroku scheduler add-on” task :send_notifications => :environment do puts “this test is working correctly!” end 这是clock.rb的样子: require File.expand_path(‘../../config/boot’, __FILE__) require File.expand_path(‘../../config/environment’, __FILE__) require ‘clockwork’ include Clockwork every(30.seconds, ‘Send notifications’) { # Heroku::API.new.post_ps(‘pocket-pal’, ‘rake scheduler:send_notifications’) rake scheduler:send_notifications […]

如何在Heroku上安排“每周”工作?

我在Heroku上部署了一个Rails应用程序,Heroku调度程序附加组件成功地用于日常工作。 现在我想要一份每周工作 ,但是调度程序加载项不允许我每周一次选择。 关于如何实现这一目标的任何建议: 我过去曾尝试过使用rufus-scheduler,但它给我带来了一些问题,所以这不是一个选择。 详情请见此处 。 我正在考虑在日常工作中检查当天的事情。 有没有人尝试过,并有反馈或知道该方法的问题? 其他想法非常感谢。

Rails 5调度程序每天更新一次数据库

我是rails的新手,希望每天午夜运行一次批处理文件/计划任务,检查哪些条目已过期。 表中的每条记录都有一个closing_date,在此之后,这些记录必须处于非活动状态。(DB上的status active = false)。 所以基本上它将运行2个SQL查询来获取所有记录,然后将另一个字段标记为对于过时的记录处于非活动状态。我正在使用Rails 5。 我应该如何处理这个-gem(rufus,无论是什么,发条或任何其他gem)或者只是一些cronjob的系统工具?我要将我的数据库更改为PostgreSQL,这样会产生什么影响? 任何建议或示例代码任何人都可以分享,以获得一个想法。

如何在Rails项目中运行日常任务/脚本?

我正在为我的应用程序开发计费系统,但我不确定如何设置每天运行的脚本,一个用于发送付款提醒(电子邮件),另一个用于降级尚未续订的订阅。 关于如何做到这一点的任何提示? 我需要注意的任何陷阱? 我可以使用的任何gem? 我已经完成了大部分购买方面,所以我不是在寻找像paypal_recurring或条纹这样的gem – 只需要处理付款提醒和处理过期的帐户。

使用Ruby on Rails安排发送电子邮件任务的最佳方法是什么?

我想安排一项日常任务:每天早上7点,我都希望发送一封电子邮件(无人为干预)。 我正在研究RoR框架,我想知道最好的方法是什么? 我听说过BackgrounDRB,OpenWFEru调度程序或基于Cron的东西,但我是新手,不明白哪一个是为我的需要而制作的。

Rails 3.1 / rake – 没有队列的特定日期任务

我想让我的用户可以选择在特定的(用户指定的)时间向他们发送他们的帐户统计信息的每日摘要…. 让我们说下面的模型: class DailySummery < 10:00 (hour) # last_sent_at # => Time of the last sent summary end 现在是否有最佳做法如何通过电子邮件将此帐户摘要发送到特定时间? 目前我有一个无限的rake任务运行,它会永久检查电子邮件是否可用于发送,我想把每日总和生成并发送到这个rake任务。 我有一个想法,我可以使用以下伪代码解决这个问题: while true User.all.each do |u| u.generate_and_deliver_dailysummery if u.last_sent_at < Time.now – 24.hours end sleep 60 end 但我不确定这是否有一些隐藏的警告…… 注意:我不想使用像resq或redis之类的队列或类似的东西! 编辑:添加睡眠(已经在我的脚本中) 编辑:这是一项时间关键服务(交易费率通知)所以它应该尽可能快。 这就是为什么我不想使用队列或基于作业的系统的背景。 我使用Monit来管理这个rake任务,这个工作非常好。

铁路定期任务

我在rails应用程序上有一个ruby,我试图找到一种方法来每隔几秒运行一些代码。 我发现了许多使用cron或类似cron的实现的信息和想法,但这些只是在一分钟内准确,和/或需要外部工具。 我想每15秒左右完成一次任务,我希望它完全自包含在应用程序中(如果应用程序停止,任务停止,没有外部设置)。 这用于缓存数据的后台生成。 每隔几秒钟,任务将汇总一些数据,然后将其存储在缓存中,该缓存将被所有客户端请求使用。 任务很慢,因此需要在后台运行而不是阻止客户端请求。 我对ruby很新,但是有一个强大的perl背景,我解决这个问题的方法就是创建一个间隔计时器和处理程序,它会分叉,运行代码,然后在完成后退出。 仅模拟客户端请求并让rails控制器自行分配可能更好。 这样我可以通过点击它来启动任务(虽然任务将每隔几秒运行一次,我怀疑我将需要,但可能有将来使用)。 虽然让控制器调用周期性任务调度程序调用的任何方法(一旦我有一个),这将是微不足道的。

使用rails计划任务

我一直在讨论rails调度任务选项,偶尔发现这段代码。 case @environment when ‘production’ every 1.day, :at => “#{Time.parse(’12:00 A’).getlocal.strftime(“%H:%M”)}” do runner “Company.send_later(:create_daily_stories!)” end when ‘staging’ every 15.minutes do command “thinking_sphinx_searchd reindex” end end 我对ruby很新,我不太明白这里的“公司”代表什么。 换句话说,我想发送一封电子邮件给人们,我有一个名为email_controller的控制器类,我有一个名为sendEmail的方法,我想用这个发送电子邮件,我该怎么做? 我应该说跑步者“email_controller.sendEmail”或类似的东西? 我不太明白。 注 – 我是否使用模型或控制器代替公司?