Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/heroku/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ruby on rails Heroku上的Rail应用程序:如何实现;“计划作业”;定期_Ruby On Rails_Heroku_Cron - Fatal编程技术网

Ruby on rails Heroku上的Rail应用程序:如何实现;“计划作业”;定期

Ruby on rails Heroku上的Rail应用程序:如何实现;“计划作业”;定期,ruby-on-rails,heroku,cron,Ruby On Rails,Heroku,Cron,我不确定这个问题的格式是否正确 我有一个部署在Heroku上的rails应用程序。在开发中,我使用“crono”gem每周发送一封简单的电子邮件,提醒用户注意各种事情。我可以看到如何在Heroku的产品中使用这个。在谷歌搜索中几乎没有这方面的内容。因此,我的问题是:“在部署在Heroku上的rails应用程序中实现简单每周作业的最佳方式是什么?Heroku有“调度器”,但这是一个“尽力而为”的附加组件,可以声称是可靠的(根据他们的文档) 谢谢有两种方法可以实现您的目标: 1.使用Heroku调度

我不确定这个问题的格式是否正确

我有一个部署在Heroku上的rails应用程序。在开发中,我使用“crono”gem每周发送一封简单的电子邮件,提醒用户注意各种事情。我可以看到如何在Heroku的产品中使用这个。在谷歌搜索中几乎没有这方面的内容。因此,我的问题是:“在部署在Heroku上的rails应用程序中实现简单每周作业的最佳方式是什么?Heroku有“调度器”,但这是一个“尽力而为”的附加组件,可以声称是可靠的(根据他们的文档)


谢谢

有两种方法可以实现您的目标:

1.使用Heroku调度程序(我会) 老实说,它的设置非常简单,我会使用它。它也非常便宜,因为你只需在作业运行时支付dyno。运行后,Heroku会破坏dyno(这是一次性dyno)

实现它的最好方法是让您的后台作业可由rake任务调用,只需让调度器调用即可

如果您有Heroku不支持的时间间隔,只需在代码中处理即可。例如,如果您希望每周发送一次电子邮件,请使用时间戳记录上次发送电子邮件的时间。每天运行一次计划程序,检查是否可以发送另一封电子邮件,如果不可以,请什么也不做

2.使用某种调度程序 那里有很多这样的人。例如

在这种情况下,你需要写你的rufus工作,然后你需要一个工人dyno一直为rufus工作,这要昂贵得多

通过在procfile中指定rufus需要的命令,您可以告诉dyno运行rufus并继续运行rufus。类似于:

调度程序:rake rufus:scheduler#为rufus调度程序进程添加rake任务

(以上片段的功劳)