Поддерживает ли opencpu асинхронный вызов для трудоемких функций R?

Недавно я создал пакет R, который использует возможности sparklyr. Я вызываю основную функцию пакета из opencpu и передаю в качестве аргумента URL-адрес со всеми моими данными в виде потока. Поток данных успешно анализируется распределенным способом через spark и дает некоторые результаты.

Моя единственная проблема заключается в том, что для завершения исполнительной части требуется много времени. Я пытался вызвать свой пакет как через opencpu.call, так и через opencpu.rpc, но оба они заставляют меня ждать окончания процесса.

Поскольку opencpu — это удивительный подход к архитектуре микросервисов, было бы чрезвычайно полезно иметь возможность действительно асинхронных вызовов.

Что-то из следующего поддерживается или планируется поддерживать в ближайшем будущем?

Вариант A: мгновенно получить идентификатор сеанса (даже если процесс все еще выполняется). Затем клиент должен запросить статус процесса, используя свой идентификатор сеанса.

Вариант B: определить URL-адрес обратного вызова, который запускает сервер ocpu, передавая идентификатор сеанса после завершения выполнения аналитического процесса.

Большое спасибо за помощь!


person efotopoulou    schedule 02.11.2017    source источник


Ответы (1)


Нет, текущий OpenCPU не поддерживает фоновые задания. Вам придется самостоятельно создать средний уровень, который выполняет запрос, который выполняет ожидание от имени пользователя.

person Jeroen    schedule 02.11.2017
comment
Есть новости/изменения по этой теме? Или существует ли какой-либо пример для этого среднего слоя @Jeroen? - person fabianmoronzirfas; 27.09.2019