我已经设置了一个用作redis worker的实例。所有港口都是开放的。当我发出
library("doRedis")
redisWorker(host="ZZZ-23-20-XXX-XXX.compute-1.amazonaws.com", queue="jobs")
我收到错误
Error in socketConnection(host, port, open = "a+b", blocking = TRUE, timeout = timeout) :
cannot open the connection
In addition: Warning message:
In socketConnection(host, port, open = "a+b", blocking = TRUE, timeout = timeout) :
ZZZ-23-20-XXX-XXX.compute-1.amazonaws.com:6379 cannot be opened
任何想法可能会发生什么?我也使用了inernal EC2 IP(10.XXX.XXX.ZZZ)仍然得到相同的错误。服务器已启动,正在运行并且ping
能够
我正在运行最新且最好的R,doRedis,Ubuntu 12.04全部更新。之前已经讨论过,但没有找到解决方案。 doRedis with strange socket connection error in Ubuntu Linux, R, and RStudio
答案 0 :(得分:2)
虽然使用registerDoRedis(),但我遇到了类似的问题,因为你无法设置超时,我相信问题在于'redisConnect'函数中使用的超时值。
在R中,如果运行fix(redisConnect),您可以看到超时的默认值如下:
redisConnect< - function(host =“localhost”,port = 6379,returnRef = FALSE, 超时= 2147483647L)
似乎这个巨大的超时值导致了这个问题。要检查它在线上的更改,请使用:
con <- socketConnection(host, port, open = "a+b", blocking = TRUE,
timeout = timeout)
对此:
con <- socketConnection(host, port, open = "a+b", blocking = TRUE,
timeout = 30)
我发现虽然有效,但是一旦重新加载包,更改就会被删除。我今天刚发现这个,所以会向开发者提交一个bug。顺便说一句,我在OSX上运行R 2.15。
您正在使用的函数默认为超时30,或者您可以尝试在函数调用中设置它以确保而不是修复()基础代码。