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

9
我正在为我的应用程序的结算系统工作,但我不确定如何设置每天运行的脚本,一个是发送付款提醒(通过电子邮件),另一个是降级未续订的订阅。
以下是一些提示:
- 您可以使用Cron(Unix / Linux)或计划任务(Windows)来设置每日运行的脚本。 - 对于发送付款提醒,您需要使用电子邮件服务API,例如SendGrid或Mailgun。 - 为了降级未续订的订阅,您需要编写代码以处理已过期的订阅并更新用户帐户。您可以查看名为Recurring Billing Engine的Ruby gem。
请注意以下事项:
- 处理付款信息时,请遵循PCI DSS(Payment Card Industry Data Security Standards)。 - 账户降级后,您应该及时通知用户并停止向他们收取费用。
最后,请注意保持您的脚本和代码的安全性,并定期备份数据。

2
可能是A cron job for rails: best practices?的重复问题。 - Ben
2个回答

11
我曾多次使用不同的方式来处理这个问题,有很多种方法可以实现。我认为目前最佳实践是使用Resque将任务排队,再使用Resque Scheduler进行调度。
Resque是一个可靠的“作业调度”应用程序,可以为您处理各种类型的任务。Resque Scheduler可以接收完整的cron表达式(以及其他调度任务的方法)来管理作业。
这种方法的优点之一是您可以获得Resque Web应用程序,该应用程序为您提供了一个Web应用程序,用于监控作业(或启动它们以进行一次性作业运行)。
我已经在Heroku上使用此方法,它表现良好并且非常可靠。

3

Ameravant的链接重定向到他们的主页,但我发现https://launchschool.com/blog/cron-jobs-and-rails有一个很好的步骤指南。 - bradlis7

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接