Темное будущее не обновляется в соответствии с прогрессом - PullRequest
0 голосов
/ 15 мая 2018

проблема ...

  1. Я передаю функцию клиенту dask и записываю фьючерсные ключи.

  2. Я использую эти ключи для создания экземпляров фьючерсов в другой функции.

  3. Эти фьючерсы сложены в режиме ожидания

магистраль программы, которую я пытаюсь:

from dask.distributed import Client, Future
client = Client()

def func1(client, data):
    future = client.submit(some_long_function, data)
    key = future.key
    return key

key = func1(client, data)

def func2(key):
    future = Future(key, client)
    print(future)  # !! Always show "pending" even when the process finished !

Как я могу использовать «ключ» будущего, чтобы получить статус прогона и получить результаты, когда закончите?

(ПРИМЕЧАНИЕ: я не хочу использовать сам объект "Future", поскольку я хотел бы отправить этот "ключ" в клиентское приложение javascript)

1 Ответ

0 голосов
/ 15 мая 2018

Когда будущее будет собирать мусор в func1, клиент отправляет планировщику сообщение о том, что ему больше не нужен результат, и поэтому он, вероятно, никогда не запустится. Возможно, вы захотите вызвать fire_and_forget на будущее, чтобы убедиться, что оно работает, даже если у вас нет ссылки на будущее.

См. Эти документы:

...