从队列向 dask 客户端提交工作的最佳方式是什么?



我们在团队中使用 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的范围。 通常,您用来插入数据库的任何内容也会在某处触发某个事件,从而触发计算。 有很多方法可以做到这一点,但在这里进入它可能超出了范围。