按计划在Heroku上运行一个Python脚本(作为单独的应用程序)

2022-05-24 00:00:00 python heroku background-process

问题描述

好的,我正在开发一个有两个Heroku应用程序的应用程序--一个是在抓取站点后写入我的数据库的写入器,另一个是使用所述数据库的阅读器。

前者只是一个具有一种while 1循环的Python脚本--它实际上是一个Twitter流。我希望它每X分钟运行一次,与读者正在做的事情无关。

现在,在本地运行该脚本可以很好地工作,但我不确定如何在Heroku上运行。我试着查了一下,但找不到一个可靠的答案。我读了一些关于后台任务、Redis队列、一次性动态等的内容,但我不确定到底应该使用什么来实现我的目的。我的一些要求是:

  1. 让Python脚本保存我想要的任何内容的日志。
  2. 将来,我可能想为作者添加一个管理面板,它只会显示脚本(和日志)的统计数据。因此,连接这个管理面板(烧瓶)应该很容易,而且不会破坏脚本本身。

我希望这里有任何建议或指示。


解决方案

  1. 我建议将使用者编写为等待的服务器,然后按时间间隔处理流。也就是说,您启动它一次,它就会永远运行,大约每10分钟进行一次处理。

    请参阅:schedPython模块,该模块在特定时间处理调度事件并运行它们。

  2. 更简单:使用Heroku的scheduler服务。

此技术更简单--它只是直截了当的代码--但如果您同时运行两个相同的使用者,则可能会导致问题。

相关文章