我正在写一个有时必须通过R脚本传递数据的网络服务器.
不幸的是启动很慢,因为我必须加载一些加载其他库等的库.
还有办法吗?
加载库,将解释器状态保存到文件,并在下次调用时快速加载该状态?要么
维护一个可以发送消息的后台R进程(不仅仅是低级数据流),这些消息被委托给异步工作者(即在解析前一个消息之前发送新消息不应该阻塞)
不幸的是,R-Websockets是同步的.
Rserve 和 RSclient 是创建和使用异步服务器的简单方法。
打开两个 R 会话。
在第一个类型中:
require(Rserve)
run.Rserve(port=6311L)
Run Code Online (Sandbox Code Playgroud)
在第二个类型中:
require(RSclient)
rsc = RS.connect(port=6311L)
# start with a synchronous call
RS.eval(rsc, {x <<- vector(mode="integer")}, wait=TRUE)
# continue with an asynchronous call
RS.eval(rsc, {cat("begin")
for (i in 1:100000) x[[i]] <-i
cat("end")
TRUE
},
wait=FALSE)
# call collect until the result is available
RS.collect(rsc, timeout=1)
Run Code Online (Sandbox Code Playgroud)