cluster_status 回调可以提交新作业吗?
Can the cluster_status callback submit new jobs?
我正在开发一个在大量对象上运行的 dispy 脚本 (duh)。
每个对象要执行多个操作 -- 只有其中一个必须先发生,其余的使用第一个作业的结果并且可以按任何顺序完成。
cluster = dispy.JobCluster(
getShift,
setup = functools.partial(doLoads, from, to),
cluster_status = processed,
nodes = Nodes
)
我想,最直接的方法是执行两个 cluster.submit()
循环——第一个循环针对每个对象的第一个作业,第二个循环——针对所有其他对象。
但是,我想在每个对象的主要作业完成后立即开始提交后续作业,而不是等待所有其他对象完成。
正确的做法是什么?特别是,我的 processed
回调函数可以向同一个集群提交额外的作业吗?
是的,回调可以提交新作业。例如,请参阅 job_scheduler.py,它在 callback
中提交作业(尽管 cluster_status
也可用于此目的)。从上面的描述,似乎你可以使用 callback
而不是 cluster_status
.
我正在开发一个在大量对象上运行的 dispy 脚本 (duh)。
每个对象要执行多个操作 -- 只有其中一个必须先发生,其余的使用第一个作业的结果并且可以按任何顺序完成。
cluster = dispy.JobCluster(
getShift,
setup = functools.partial(doLoads, from, to),
cluster_status = processed,
nodes = Nodes
)
我想,最直接的方法是执行两个 cluster.submit()
循环——第一个循环针对每个对象的第一个作业,第二个循环——针对所有其他对象。
但是,我想在每个对象的主要作业完成后立即开始提交后续作业,而不是等待所有其他对象完成。
正确的做法是什么?特别是,我的 processed
回调函数可以向同一个集群提交额外的作业吗?
是的,回调可以提交新作业。例如,请参阅 job_scheduler.py,它在 callback
中提交作业(尽管 cluster_status
也可用于此目的)。从上面的描述,似乎你可以使用 callback
而不是 cluster_status
.