Может ли обратный вызов cluster_status отправить новые задания? - PullRequest
0 голосов
/ 07 сентября 2018

Я занимаюсь разработкой скрипта dispy, работающего с большим количеством объектов (duh).

Для каждого объекта нужно выполнить несколько операций - сначала должна произойти только одна из них, остальное использоватьрезультаты первого задания и могут быть выполнены в любом порядке.

cluster = dispy.JobCluster(
    getShift,
    setup = functools.partial(doLoads, from, to),
    cluster_status = processed,
    nodes = Nodes
)

Простой способ, я полагаю, состоит в том, чтобы сделать два цикла из cluster.submit() - первый цикл для первого задания для каждого объекта ивторой цикл - для всех остальных.

Однако я хотел бы начать отправку последующих заданий, как только основное задание будет завершено для каждого объекта - не дожидаясь его выполнения для всехдругие объекты.

Какой правильный способ сделать это?В частности, может ли моя функция обратного вызова processed отправлять дополнительные задания в тот же кластер?

1 Ответ

0 голосов
/ 08 сентября 2018

Да, обратный вызов может подать новую работу. См., Например, job_scheduler.py , который отправляет задания в callback (хотя cluster_status также может использоваться для этой цели). Из приведенного выше описания, кажется, вы можете использовать callback вместо cluster_status.

...