2

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

我写了一个python脚本来做到这一点。它可以工作,但速度很慢,而且我经常在它完成之前就收到这个错误:ConnectionError: [Errno 104] Connection reset by peer

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

4

1 回答 1

3

看看celery,它应该可以轻松地将后台作业分配给多个工人(也可以在不同的机器上运行)。如果失败,它还可以让您再次排队作业并稍后重试......

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

于 2013-01-24T19:49:34.913 回答