是否可以为并行 luigi.Tasks 添加轻微的延迟?
Is it possible to add a slight delay to parallel luigi.Tasks?
我在工作流中有许多 luigi.Tasks 没有依赖关系。但是,这些任务中的每一个都会向服务器发送一个命令,如果我不稍微错开发送命令,服务器可能会不知所措。(即在发送每个命令之间延迟 5 秒)任何方式来处理这个我没有的论点找到了吗?
Luigi 有资源的概念,您可以限制某些资源(在本例中是您的服务器)的使用。您可以配置仅需要并发执行此类资源的任务的最大数量。这对于例如许多并行写入的任务可能会严重影响服务器的数据库非常有用。
查看文档:
http://luigi.readthedocs.io/en/stable/configuration.html?highlight=resources#resources
您基本上是在配置中添加一个部分:
[resources]
hive=2
server=2
然后在你的 class
class MyTask(luigi.Task):
resources = {'server': 1}
使用此配置,您最多只能执行两个使用此类资源的任务。我知道这不是您要问的,但我相信这是 Luigi 为您的用例提供的壁橱功能。
我在工作流中有许多 luigi.Tasks 没有依赖关系。但是,这些任务中的每一个都会向服务器发送一个命令,如果我不稍微错开发送命令,服务器可能会不知所措。(即在发送每个命令之间延迟 5 秒)任何方式来处理这个我没有的论点找到了吗?
Luigi 有资源的概念,您可以限制某些资源(在本例中是您的服务器)的使用。您可以配置仅需要并发执行此类资源的任务的最大数量。这对于例如许多并行写入的任务可能会严重影响服务器的数据库非常有用。
查看文档:
http://luigi.readthedocs.io/en/stable/configuration.html?highlight=resources#resources
您基本上是在配置中添加一个部分:
[resources]
hive=2
server=2
然后在你的 class
class MyTask(luigi.Task):
resources = {'server': 1}
使用此配置,您最多只能执行两个使用此类资源的任务。我知道这不是您要问的,但我相信这是 Luigi 为您的用例提供的壁橱功能。