multiprocess 怎么动态增加新的进程

比如现有需求伪代码如下

pool = new Pool()
rp = Manager.list()

def func(key):
    # 设置为正在执行
    rp.append(key)
    while True:
        item = redis.lpop(key)
        if not item:
            break
        ......
    # 处理完了移出
    rp.remove(key)
    
while True:
    # 如果redis里有新的p:*出现 
    for key in redis.scan('p:*'):
        # 并且当前并没有在执行中
        if key not in rp:
            pool.apply_async(func, (key,))
            
pool.close()
pool.join()

实际效果 func 一直没执行 =。=

阅读 2k
撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进