Использование callr пакета в паре с RShiny
Я использую пакет callr для запуска фоновых процессов через приложение RShiny. Эти процессы предназначены для непрерывной работы, т.е. каждый из них имеет непрерывный цикл, например:
while (1) {
Sys.sleep(60)
doTheJob()
}
Но эти процессы работают очень нестабильно, это означает, что в большинстве случаев они прекращаются по неизвестным причинам.
Процесс выполняется через callr - r_bg, например:
r_bg(
poll_connection = FALSE,
func = jobFunction,
args = list(arg_1 = val_1,
arg_2 = val_2),
cmdargs = c("--slave", "--save", "--no-restore"),
stderr = "2>&1",
stdout = logfile_name,
supervise = FALSE
)
Триггером для создания процесса является функция RShiny onclick:
onclick("submit", spawn_process(logfilename = logfilename_val))