如何管理漫长的(漫长的)python进程

时间:2013-01-24 19:22:21

标签: python django background-process

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

我已经编写了一个python脚本来执行此操作。它工作正常,但它很慢,我经常在它完成之前得到这个错误:ConnectionError:[Errno 104]连接由同行重置

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

1 个答案:

答案 0 :(得分:3)

查看celery它应该可以轻松地将后台作业分配给多个工作人员(也可以在不同的计算机上运行)。此外,它还可以让您在失败后再次排队作业,然后再重试...

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