有没有办法在dask客户端中运行异步功能?

时间:2019-08-29 16:10:43

标签: asynchronous dask

是否有某种包装或提交作业的方式?

async def f(x):
    return x


fut = client.submit(f, 1)

TypeError:无法腌制协程对象

1 个答案:

答案 0 :(得分:1)

使用.submit API提交的函数在线程池中运行,该线程池与主worker的事件循环线程分开。此线程池不适用于运行异步功能。

但是,您可以使用client.run方法提交异步函数以在工作程序的主事件循环上运行。

client.run(f, 1)

但是,此操作在所有所有工作者上运行f。如果您想选择一个工人,那么您可以这样做

workers = list(client.scheduler_info()["workers"])
client.run(f, 1, workers=[workers[0]])