代码之家  ›  专栏  ›  技术社区  ›  Evg

python中的任务队列进程

  •  0
  • Evg  · 技术社区  · 16 年前

    1. python脚本一直在工作。但我不喜欢它(原因可能是内存泄漏)。

    2. 由cron调用的python脚本并执行一小部分任务。但是我需要解决内存中一个活动脚本工作的问题(防止活动脚本计数增长)。用python实现它的最佳解决方案是什么?

    有什么办法解决这个问题吗?

    3 回复  |  直到 15 年前
        1
  •  1
  •   Community Mohan Dere    9 年前

    Python: module for creating PID-based lockfile ". 这实际上只是一个很好的实践,一般来说,你需要确保不会有多个实例运行,实际上,所以你应该研究它,即使你有脚本不断运行,我 建议。

    为了 当然,要避免内存泄漏应该不太难,但是如果您遇到很多问题(例如,我有时会使用复杂的第三方web框架),我建议您使用一个小的、精心设计的主循环来编写脚本,该循环监视数据库中的新作业,然后使用 multiprocessing module 为完成每一项任务而派生出新的流程。

    当任务完成时,子进程可以退出,立即释放没有正确垃圾收集的内存,主循环应该足够简单,可以避免任何内存泄漏。

    这还提供了一个优势,即如果系统有多个CPU核,或者如果任务花费大量时间等待I/O,则可以并行运行多个任务。

        2
  •  1
  •   Katriel    16 年前

    这个问题有点含糊不清。您应该记住的一点是,在Python中泄漏内存非常困难,因为自动垃圾收集。 cron 使用Python脚本来处理队列不是很好,尽管它可以正常工作。

        3
  •  1
  •   MattH    16 年前

    我建议使用 Celery

    推荐文章