我们在团队中使用 Dask 来运行我们所有的工作流程。我们目前自动运行工作流,如下所示:
- 我们运行一个查询来侦听特定 SQL 表中特定列内的更改
- 当检测到表时,我们导入 dask 延迟图并运行它
以上工作正常,但它需要我们查询数据库并侦听更改。在其他情况下,我们只需要告诉调度程序运行工作流。在本例中,我们希望将任务添加到队列中,并从那里运行它。
我想使用一个简单的sql表,然后有一个循环来检查这个表是否有任何新工作。一旦新作品可用,它就会提交给dask.distributed。
但是,这意味着我们必须每 30 秒或更短时间 ping 一次这个表,并且经常 24/7 全天候查询表感觉有点笨拙。
如果你的问题是"如何使用 Dask 将任务提交到队列?"那么我会指出你
- 达斯克期货 https://docs.dask.org/en/latest/futures.html
- 协调原语:https://docs.dask.org/en/latest/futures.html#coordination-primitives
如果你的问题是"如何监视SQL数据库?"那么这有点超出Dask的范围。 通常,您用来插入数据库的任何内容也会在某处触发某个事件,从而触发计算。 有很多方法可以做到这一点,但在这里进入它可能超出了范围。