我想创建一个ruby脚本,它在一天中的某些时间触发。此脚本需要使用rails-app中的数据,如会话数据或数据库。
如果这是一个问题,那么脚本需要10分钟才能执行(在php中,它是)。
实现这一目标的最佳/最简单/最干净的方法是什么?
答案 0 :(得分:2)
创建一个处理所有内容的模型。例如:
class PaymentProcessor
def self.daily
# whatever needs to be done.
end
end
使用以下命令从cron运行该代码:
RAILS_ENV=production script/runner "PaymentProcessor.daily" > tmp/payment.log
此解决方案的好处:您可以完全访问所有Rails方法。代码与整个应用程序的代码库(版本控制)相同。此外,代码可以使用与应用程序中的每个其他代码相同的方式进行测试。另一方面,cron是一个众所周知的巨人。您可以使用像Whenever这样的宝石来定义带有Ruby的漂亮DSL的cron选项卡。