用于管理线程池的Pythonic方法

时间:2013-10-18 16:27:24

标签: python multithreading

我有几个python脚本负责管理一些实时订阅源处理。它的结构如下:

脚本1:管理实时事件的“聚合”列表,提供有关所有事件的一些非常精简的数据。

脚本2:管理处理每个直播活动的详细供稿的线程列表。

脚本1负责定义哪些事件处于活动状态,并且(现在)将活动事件的所有唯一标识符写入平面文件(根本不喜欢它)。脚本2读取这些唯一标识符,检查它是否已经有一个具有该ID的线程,如果没有,它将启动该线程,然后该线程处理该事件的详细数据。脚本2不定义何时应将该线程标记为非活动状态或将其从准队列文件中删除。线程知道它们何时应该自行终止,脚本1监视作为主列表的订阅源,该列表定义了哪些事件是活动的。这种方法虽然有效,但对我来说却感觉很笨拙。

我已经看过这个Threading pool similar to the multiprocessing Pool?和Queue这样的方法https://www.ibm.com/developerworks/aix/library/au-threadingpython/,但它们似乎并不适用,因为实时事件线程没有指定的生命周期......它们是产生并生存直到他们的活动结束(大约几小时)。

我还是蟒蛇新手,这感觉有点过头了。我们将非常感谢您在实施方法方面提供的任何理智/愚蠢的检查。

编辑:由于系统管理员的限制,我无法使用外部模块:(

1 个答案:

答案 0 :(得分:1)

听起来你需要使用像celery.

这样的东西