按计划在Heroku上运行一个Python脚本(作为单独的应用程序)
问题描述
好的,我正在开发一个有两个Heroku应用程序的应用程序--一个是在抓取站点后写入我的数据库的写入器,另一个是使用所述数据库的阅读器。
前者只是一个具有一种while 1
循环的Python脚本--它实际上是一个Twitter流。我希望它每X分钟运行一次,与读者正在做的事情无关。
现在,在本地运行该脚本可以很好地工作,但我不确定如何在Heroku上运行。我试着查了一下,但找不到一个可靠的答案。我读了一些关于后台任务、Redis队列、一次性动态等的内容,但我不确定到底应该使用什么来实现我的目的。我的一些要求是:
- 让Python脚本保存我想要的任何内容的日志。
- 将来,我可能想为作者添加一个管理面板,它只会显示脚本(和日志)的统计数据。因此,连接这个管理面板(烧瓶)应该很容易,而且不会破坏脚本本身。
我希望这里有任何建议或指示。
解决方案
我建议将使用者编写为等待的服务器,然后按时间间隔处理流。也就是说,您启动它一次,它就会永远运行,大约每10分钟进行一次处理。
请参阅:schedPython模块,该模块在特定时间处理调度事件并运行它们。
更简单:使用Heroku的scheduler服务。
此技术更简单--它只是直截了当的代码--但如果您同时运行两个相同的使用者,则可能会导致问题。
相关文章