python - 如何管理一个漫长(数天)的Python进程

标签 python django background-process

我有一个大型(超过 600,000 条记录)数据库,作为 Django 应用程序的一部分。该应用程序存储从各种开放数据网络服务收集的信息。每隔一段时间(也许每周一次或更短时间)我需要检查这些网络服务以查看是否有任何数据已更新。

我编写了一个 python 脚本来执行此操作。它可以工作,但速度非常慢,我经常在它完成之前就收到此错误: ConnectionError: [Errno 104] Connection Reset by Peer

根据一些实验,我认为这个过程需要几天时间才能完成。除了优化我的脚本之外,处理这种长时间运行的 python 进程的最佳方法是什么?

最佳答案

看看celery它应该可以轻松地让您将后台作业分配给多个工作人员(也可以在不同的计算机上运行)。它还使您能够在失败时再次对作业进行排队并稍后重试...

为了优化您的脚本,您可能应该考虑使用多处理或使用异步库,例如 gevent (特别是如果您的作业执行大量 I/O,例如调用 Web 服务),这使您能够并行处理大量同时连接(最多 100 秒/1000 秒)。

关于python - 如何管理一个漫长(数天)的Python进程,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14509093/

相关文章:

python - 如何在 python 中抑制 PDFMiner 的布局分析

python - 如何在 Django REST API 中使用 GPS 位置?

python - django View 流测试

python - Django & Suds : UnicodeEncodeError When Using QuerySets

java - 如何以固定的时间间隔运行后台作业方法?

Python AND OR 语句

python - 根据另一列中的值将列添加到 Python pandas DataFrame

python - Django 1.6 : Forgot password not sending email

reactjs - react-native-background-timer, null 不是一个对象

Python:长时间运行的后台进程的生成或线程?