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

时间:2014-05-31 06:14:59

标签: python heroku background-process

好的,所以我正在开发一个拥有2个Heroku应用程序的应用程序 - 一个是在抓取网站后写入我的数据库的作者,另一个是使用该数据库的读者。

前者只是一个Python脚本,它有一种while 1循环 - 它实际上是一个Twitter流。我希望每隔x分钟运行一次,与读者的行为无关。

现在,在本地运行脚本运行正常,但我不确定如何在Heroku上运行它会起作用。我尝试过查找,但找不到可靠的答案。我读到了后台任务,Redis队列,一次性dynos等,但我不确定为了我的目的真正使用什么。我的一些要求是:

  1. 让Python脚本记录我想要的任何内容。
  2. 将来,我可能想为编写器添加一个管理面板,它只显示脚本(和日志)的统计信息。因此,连接这个管理面板(烧瓶)应该很容易,而不是破坏脚本本身。
  3. 我会喜欢这里的任何建议或指示。

1 个答案:

答案 0 :(得分:2)

  1. 我建议将消费者编写为等待的服务器,然后在定时间隔处理流。也就是说,你启动它一次,它会永远运行,每10分钟左右进行一次处理。

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

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

  3. 这种技术更简单 - 它只是直通代码 - 但如果你有两个同一个消费者同时运行会导致问题。