svSocket evalServer跳过等待进程

时间:2017-02-19 04:59:46

标签: r rserve svsocket

问题版本1,我们可以让pr_fun处理它而无需等待ch_fun()完成

ch_fun <- function() {Sys.sleep(10)}
pr_fun <- function() {ch_fun(); return("Done")}
pr_fun()

问题实际版本

R会话1作为svSocket服务器

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中并中止它仍然被处理的调用。我们可以通过检查对象&#34; a&#34;来检查服务器端。创建了。

我的观点是,我们没有必要等待工作在第3阶段完成,但仍然处理完毕,不知何故工作堆积在会话方面,我们不必等待工作完成将它们发送到服务器并中止等待进程并继续前进。我们可以使用Ctrl + C或Esc手动中止,但是如何在函数中执行此操作。我希望pr_fun在服务器会话中调用ch_fun并立即返回它。

0 个答案:

没有答案