使用celery输出到文件

cha*_*imp 5 python multithreading celery

我正在尝试使用 Celery 输出到多个文件。任务很简单:

  • 获取一些数据以及文件路径
  • 将该数据附加到文件路径(如果文件不存在则创建该文件)

我不想每次都打开/关闭文件句柄,因为在很多情况下我会写入同一个文件。所以我做了一个简单的FileHandlePool。

然而,在运行时我注意到对于每个线程/实例,celery 都会创建一个新的 FileHandlePool!所以,我的文件被覆盖。

处理这种情况的最佳方法是什么?是否可以将 m FileHandlePool 置于与主线程相同的范围内,并让其他 celery 线程访问它?

谢谢!

dji*_*inn 4

该池似乎没有被 celery 线程共享。理想的方法是为单个进程分配写入文件的任务,并且所有 celery 线程都应通过队列写入该进​​程。

  • 我一直参考教程http://www.ibm.com/developerworks/aix/library/au-threadingpython/ (2认同)