Я обернул Ray в веб-API (используя ray start --head
и uvicorn с ray.init
). Теперь я пытаюсь:
- Отправить задание Ray (через API) и сериализовать будущее и вернуться к пользователю
- Позже, позвольте пользователю нажать API для посмотреть, завершена ли задача, и вернуть результаты
Кикер состоит в том, что будучи многопоточным, я не могу гарантировать, что следующий вызов будет из того же потока. Вот то, что я наивно хотел бы сработать:
id = my_function.remote()
id_hex = id.hex()
Затем в другом запросе / вызове:
id = ray._raylet.ObjectID(binascii.unhexlify(id_hex))
ray.get(id)
Теперь это никогда не заканчивается (время истекает), хотя я знаю будущее завершен, и код работает, если я запустил его в том же потоке, что и исходный запрос.
Я предполагаю, что это связано с использованием другой инициализации Ray.
Есть ли способ заставить Рэя «refre sh» фьючерсного результата от Redis?