为什么进程不在python中运行

时间:2018-06-04 12:42:30

标签: python multithreading multiprocessing

我有bot(query, key)函数发布数据,dicts(query, answer)包装返回结果,query_pipe(query_list)处理查询请求列表。但当我把它放在multiprocessing.Process中时,我发现bot(query, key)没有返回任何内容。这是我的代码。

def bot(query, key):
    data = {
        'key'    : key, 
        'info'   : query, 
        'userid' : 'wechat-robot', 
    }

    try:
        apiUrl = url
        page = requests.post(apiUrl, data=data)
        if page.json()['code'] == '100000':
            answer = page.json()['text']
            return dicts(query, answer)
        else:
            return dicts(query, 'failed')
    except Exception as e: 
            return '500 Error'

def dicts(query, answer):
    return {'query': query, 'answer': answer}

def query_pipe(query_list):

    keys_pool = []
    with open('keys.txt', 'r') as f:
        lines = f.readlines()
        for line in lines:
            keys_pool.append(line.strip('\n'))

    idx = 0
    print(bot(query_list[0], keys_pool[0]))

p = Process(target=query_pipe, args=(query_data,))
p.start()
p.join()

但是当我运行不使用query_pipe(query_list)的{​​{1}}时,multiprocess.Process会打印正确的输出。我感到很困惑,所以任何人都可以给我一个提示,我将非常感激。

0 个答案:

没有答案