我不确定这个问题的格式是否正确。
我有一个在Heroku上部署的rails应用程序。在开发中,我使用“crono”gem每周发送一封简单的电子邮件,以提醒用户各种各样的事情。我可以看到如何在Heroku的生产中使用它。谷歌搜索中几乎没有任何内容。因此我的问题是:“在Heroku上部署的rails应用程序中实现简单的每周工作的最佳方式是什么.Heroku有”调度程序“,但这是一个声称可靠的”尽力而为“的补充(根据他们的文件)
由于
答案 0 :(得分:1)
有两种方法可以达到你想要的效果:
老实说,设置起来非常简单,我会用它。它也非常便宜,因为你只需要在工作运行时支付动力。在它运行之后,Heroku摧毁了dyno(这是一个一次性的dyno)
实现它的最佳方法是让你的后台作业可以通过rake任务调用,只需让调度程序调用它即可。
如果Heroku不支持时间间隔,只需在代码中处理。例如,如果您想每周发送一次电子邮件,请在上次发送电子邮件时记录时间戳。每天运行一次调度程序,只需查看是否可以发送另一封电子邮件,如果不执行任何操作。
那里有很多人。例如,rufus。
在这种情况下,你会写你的rufus工作。然后你需要让一个工人dyno一直运行rufus,这要贵得多。
你可以通过在procfile中指定rufus命令命令来告诉dyno运行rufus并继续运行rufus。类似的东西:
scheduler: rake rufus:scheduler # Add rake task for rufus scheduler process
(上述代码段How to avoid Rufus scheduler being called as many times as there are no.of dynos?的信用)