大内存Python后台作业
我正在运行Flask服务器,它将数据加载到MongoDB数据库中.由于存在大量数据,这需要很长时间,我想通过后台工作来完成这项工作. 我使用Redis作为消息代理和Python-rq来实现作业队列.所有代码都在Heroku上运行. 据我所知,python-rq使用pickle来序列化要执行的函数,包括参数,并将其与其他值一起添加到Redis哈希值. 由于参数包含要保存到数据库的信息,因此它非常大(约50MB),当它被序列化并保存到Redis时,不仅耗费了大量时间,而且还消耗了大量内存. Heris的Heroku计划仅售100美元,售价30美元.事实上我经常会遇到OOM错误: 使用内存时不允许使用OOM命令> ‘maxmemory’. 我有两个问题: > python-rq是否适合这项任务,或者Celery的JSON序列化更合适? 您对最佳解决方案的想法非常感谢! 最佳答案
由于您在评论中提到您的任务输入是一个大的键值对列表,我将建议以下内容:
>加载文件中的键/值对列表. 使用上述方法,您将能够: >快速将您的任务分解为可管理的块. 对于像你正在做的那样的用例,这将比通过你的排队系统发送这些项目更快,并且所需的开销要少得多. 希望这可以帮助! (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |