Heroku&Django&Celeri&Redis:“状态从向上更改为崩溃”,没有任何解释

时间:2020-05-18 14:26:17

标签: python django heroku celery

我创建了一个部署在Heroku上的Django应用。该应用正在处理一项重要的后台任务(需要5到10百万分钟才能运行)。它涉及抓取数据并创建图形可视化。后台任务通过Celeri应用处理。 Celeri和Django之间的通信是通过Redis完成的。

一切在本地都运行良好。抓取少量数据(具有50行的数据框),一切工作正常。但是,一旦我增加了使用的数据量(数据帧> 50行),Heroku工作程序便崩溃了,而没有任何错误消息。

2020-05-18T12:32:11.945988+00:00 app[web.1]: 10.101.144.240 - - [18/May/2020:12:32:11 +0000] "GET /task/bef2fea5-b7f7-4c37-b32e-2a7888486925/ HTTP/1.1" 200 77 "https://community-detection-instagram.herokuapp.com/parameters/" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_13_6) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/81.0.4044.138 Safari/537.36"
2020-05-18T12:32:14.039229+00:00 heroku[worker.1]: State changed from up to crashed
2020-05-18T12:32:14.042067+00:00 heroku[worker.1]: State changed from crashed to starting

在创建剧情期间一直发生 ,这是我的后台任务的最后一步。

同样,当我仅抓取少量数据(甚至在生产中)时,可视化效果很好。我以为这可能是内存问题,但看来我没有全部使用。

screen of the memory usage from heroku

我很想知道你的想法。后台任务对于Heroku / Redis来说是否太繁重?为什么工人崩溃而没有任何错误消息?

PS:我将抓取的数据存储在数据库中。它只是在后台任务抓取阶段创建的500行熊猫数据框。可能有问题吗?

1 个答案:

答案 0 :(得分:0)

刷新内存显示板后,似乎是内存问题。

New screen of the Heroku memory report

为了防止有人遇到相同的问题,我不得不升级Heroku计划以查看内存报告。