我在使用heroku中的kue连接到Redis来处理多个工作进程时遇到问题。我可以与多个工作人员连接到本地主机上的redis,但在与redis-to- go连接时似乎断开了。仅当我有多个运行的kue worker /进程时,这才似乎中断。
kue.redis.createClient = function() { var client; client = redis.createClient(1234, 'tetra.redistogo.com'); client.auth('xyz'); return client; }; jobs = kue.createQueue(); jobs.process("email, 2, function(job, done) { console.log("processing email"); return done(null, null); });
得到一个错误
Error: Uncaught, unspecified 'error' event. at RedisClient.emit (events.js:47:15) at Command.callback (/Users/transformer/Projects/Pictorious/Services/node_modules/redis/index.js:159:29) at RedisClient.return_error (/Users/transformer/Projects/Pictorious/Services/node_modules/redis/index.js:446:25) at RedisReplyParser. (/Users/transformer/Projects/Pictorious/Services/node_modules/redis/index.js:256:14) at RedisReplyParser.emit (events.js:64:17) at RedisReplyParser.send_error (/Users/transformer/Projects/Pictorious/Services/node_modules/redis/lib/parser/javascript.js:266:14) at RedisReplyParser.execute (/Users/transformer/Projects/Pictorious/Services/node_modules/redis/lib/parser/javascript.js:125:22) at RedisClient.on_data (/Users/transformer/Projects/Pictorious/Services/node_modules/redis/index.js:422:27) at Socket. (/Users/transformer/Projects/Pictorious/Services/node_modules/redis/index.js:66:14) at Socket.emit (events.js:64:17)
如果您正在使用Redis To Go nano实例(例如免费实例),则可能会遇到连接限制。您只被允许10个连接,看来kue在做redis.client()很多。因此,您可能会达到该极限。
为了确定这一点,请redis.debug_mode = true;在进行任何工作之前添加并查看输出内容(注意:它将吐出很多信息,b \ c发生了很多连接,但是在或处出现“最大连接数”错误在输出即将结束时。
redis.debug_mode = true;
至少当我们有一个工人和客户都在访问kue时,我们似乎达到了这个极限。
希望这可以帮助。