我正在构建一个 FastAPI 应用程序,它有一个端点来触发 Dask 计算。API 端点将此调用发送到 Dask 调度程序,并仅返回Future.
trigger
x = client.submit
(
function_name,
arg1,
arg2
)
return x.key
我有另外两个端点来检索任务的状态和结果,它们将key作为输入。
status
status = Future(key=key, client=client).status
return status
result
result = Future(key=key, client=client).result()
return result
当然,这样,我在trigger返回后失去了对未来的引用,在这种情况下,Dask 不再计算它了。因此,即使将密钥提供给客户端,我们也会获得pending永久的状态。
我现在正在做的是将 Future 对象的引用存储为应用程序中的 python 字典,这很有效。但理想情况下,我希望我的 API 应用程序是无状态的。什么会在这个应用程序之外存储这些期货?Python 中有没有很好的缓存库可以存储 Python 对象(带有引用)?