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.