我正在编写一个有时必须通过R脚本传递数据的网络服务器。
不幸的是,启动速度很慢,因为我必须加载一些加载其他库等的库。
有没有办法
加载库,将解释器状态保存到文件中,并在下次调用时快速加载该状态?或
维护一个可以发送消息的后台R进程(不仅仅是低级数据流),这些消息被委托给异步工作者(即在解析前一个消息之前发送新消息不应该阻塞)
R-Websockets是同步的。
答案 0 :(得分:2)
Rserve和RSclient是一种创建和使用异步服务器的简便方法。
打开两个R会话。
在第一种类型中:
require(Rserve)
run.Rserve(port=6311L)
在第二种类型中:
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)