gpt4 book ai didi

python - 使用关键字参数调用任务 block

转载 作者:太空宇宙 更新时间:2023-11-04 05:14:00 25 4
gpt4 key购买 nike

如何使用关键字参数分块任务?例如,这个任务:

@app.task
def add(x, y, multiply=1, unit="GB"):
return '%s %s' % ((x + y) * multiply, unit)

我可以像往常一样使用 add.apply_async(args=(1, 2), kwargs={'unit': 'MB'}) 调用这个任务,但是我如何分块呢?

我想做这样的事情:

add.chunks([{'args': (1, 2), 'kwargs': {'unit': 'MB'}}, {'args': (3, 4), 'kwargs': {'unit': 'KB'}}, ...], 10)

documentation仅显示如何使用带有位置参数的 block :

from proj.tasks import add
res = add.chunks(zip(range(100), range(100)), 10)()

最佳答案

根据我在 chunks source code 中看到的内容你必须给出一个可迭代的参数元组。

所以你可以制作这种助手:

def build_kwargs_tuples(params, default_multiply=1, default_unit="GB"):
for d in params:
x,y = d["args"]
kwargs = d.get("kwargs",{})
multiply = kwargs.get("multiply", default_multiply)
unit = kwargs.get("unit", default_unit)
yield (x,y,multiply, unit)

然后你可以按照你的要求指定你的参数:

In [40]: example = [{'args': (1, 2), "kwargs": {'unit': 'MB'}}, {'args': (3, 4), "kwargs": {'unit': 'KB'}}]

In [41]: res = add.chunks(build_kwargs_tuples(example),1)()

In [43]: res.get()
Out[43]: [[u'3 MB'], [u'7 KB']]

关于python - 使用关键字参数调用任务 block ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42237808/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com