一段时间后,Heroku Celery停止执行后台任务

时间:2018-09-16 07:40:04

标签: heroku flask web-crawler celery celery-task

我有一个烧瓶应用程序部署到Heroku,它主要接受域URL作为输入并抓取域的链接。我使用芹菜和Redis代理通过后台任务处理域的爬网。每当抓取开始运行时,它将在10或20分钟后停止执行任务。

后台任务中的爬网程序会在线程中包含5个工作线程来爬网该域,并且在一段时间内可以正常工作,但在一段时间后会停止。当我检查活动任务时,该任务会显示在那儿但没有执行,并且如果我过一段时间再检查,该任务就会消失。

这是我尝试过的:

  • 尝试使用主管在一段时间后重新启动工作程序,但 经过多次尝试后仍无法在Heroku上安装它
  • 将代理从Redis切换到RabbitMQ,但仍无法解决 问题

我看到有人建议为长任务设置任务time_limit。因此,如果这是解决方案,那么我应该为一个很长的任务设置time_limit多长时间作为对域的爬网。

如果这不是解决方案,请提出任何您认为可以在Heroku上为我锻炼的东西(这在我的开发机器上不是问题)。

0 个答案:

没有答案