svSocket evalServer пропустить процесс ожидания
Проблема версии 1. Можем ли мы заставить pr_fun обработать его заново, не дожидаясь завершения ch_fun()
ch_fun <- function() {Sys.sleep(10)}
pr_fun <- function() {ch_fun(); return("Done")}
pr_fun()
Проблема Актуальная версия
R сессия 1 как svSocket Server
library(svSocket)
startSocketServer(port = 9875,local=FALSE)
R сессия 2 как клиент svSocket
con <- socketConnection(port = 9875,host="127.0.0.1")
evalServer(con,"Sys.sleep(20)")
R сессия 3 в качестве клиента svSocket
con <- socketConnection(port = 9875,host="127.0.0.1")
evalServer(con,"a=10")
Если мы запустим строки кода для сеанса 2 и пока сервер обрабатывает вызов Sys.sleep, мы быстро поместим строки кода для сеанса 3 в сеанс 3 и прервем вызов, который все еще обрабатывается. Мы можем проверить это на стороне сервера, проверив, был ли создан объект "а".
Моя точка зрения заключается в том, что нам не нужно было ждать, пока работа завершится в третьем сеансе, но все же она была обработана, так что каким-то образом задания накапливались на стороне сеанса, и нам не нужно ждать окончания работ, просто отправив их на сервер и отмени процесс ожидания и двигаться вперед. Мы можем вручную прервать использование Ctrl+C или Esc, но как я могу сделать это в функции. Я хочу, чтобы pr_fun вызывал ch_fun в сеансе сервера и немедленно приступил к его возврату.