我创建了一个Django应用程序,部署在Heroku上。该应用程序正在处理一个重要的后台任务(运行需要5-10mn )。它涉及到抓取数据和创建一个巧妙的可视化。后台任务是通过一个塞莱里应用程序来处理的。塞莱里和姜戈之间的交流是和雷迪斯一起完成的。
在当地一切都很顺利。每件事都能很好地处理少量的数据( 50行数据)。但是,一旦我增加了使用的数据量(dataframe > 50行),Heroku worker就会崩溃,而不会出现任何错误消息。
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它总是发生在在创建的过程中,这是我的背景任务的最后一步。
同样,当我只收集了少量的数据(即使是在生产中)时,可视化效果也很好。我认为这可能是一个记忆问题,但看起来我并没有全部使用。
我很想听听你的想法。对于Heroku / Redis来说,背景任务是否太重?为什么工人在没有任何错误信息的情况下崩溃?
PS:我是,而不是,将数据保存在数据库中。这是一个“只有”500行熊猫的数据框架,是在背景任务的抓取阶段创建的。会不会是个问题?
发布于 2020-05-18 15:20:47
https://stackoverflow.com/questions/61871865
复制相似问题