在程序中,会通过远程传输等多种方法接收到json格式的数据,然后处理后变成字典dict格式数据,比如:
order_commands = [{
"func": "add_two_value",
"a": 111,
"b": 222,
}, {
"func": "multiply_two_value",
"a": 55,
"b": 66,
}, ]
上面的示例包含两个待执行函数,用func
表示哪个函数/命令,剩余部分均为参数,接收到这样的数据后可以使用多进程批处理,示例代码如下:
from joblib import Parallel, delayed
def add_two_value(a, b): # 求加法
return a + b
def multiply_two_value(a, b): # 求乘法
return a * b
def main():
order_commands = [{
"func": "add_two_value",
"a": 111,
"b": 222,
}, {
"func": "multiply_two_value",
"a": 55,
"b": 66,
}, ]
_tasks = []
for order_cmd in order_commands:
_function_mark = order_cmd.pop("func")
# eval(_function_mark)(**order_cmd) # 逐一运行
_tasks.append(delayed(eval(_function_mark))(**order_cmd))
multi_work = Parallel(n_jobs=2, backend='threading') # 多线程处理
res = multi_work(_tasks)
print(res)
if __name__ == '__main__':
main()
得到结果:
[333, 3630]