进程池 apply_async里任务函数不执行

这个问题搞了很久,除了网上大神们说的参数后面必须加逗号之外还有队列,原来redis对象也不能写在init初始化方法里面,不知道什么原因,写在外面,进程池ok,任务开始执行。还望解惑,谢谢

redis_conn_1 = RedisUtil(db=1)  # redis对象放在init方法里面,进程池不执行,不知道原因,所以写在了这里


class StartDisguise(object):

    def __init__(self):
        self.cc = ChaosCombination()

    def wait_disguise(self):

        pool = Pool(MAX_PROCESS_NUM)
        while True:

            time.sleep(random.randint(1, 3))
            print('有任务吗,来看看')
            task_disguise_info = redis_conn_1.get_connection().brpop('disguise_content_queue', timeout=3)
            print('从redis里面取到的数据是:', task_disguise_info)
            if task_disguise_info:

                key, task_disguise_bytes = task_disguise_info
                task_disguise_dict = json.loads(str(task_disguise_bytes, encoding="utf-8"))
                user_name = task_disguise_dict.get('user_name')
                task_id = task_disguise_dict.get('task_id')
                key_word = task_disguise_dict.get('key_word')
                item = task_disguise_dict.get('item')
                pool.apply_async(self.insert_into_table_from_disguise_text, args=(item, user_name, task_id, key_word,))
                

    def insert_into_table_from_disguise_text(self, item, user_name, task_id, key_word):
        print('进程2', os.getpid())
        print('多进程开始处理====>>>>')
  • 2
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 2
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值