ruby – 如何在eventmachine中实现无限循环

ruby – 如何在eventmachine中实现无限循环,第1张

概述我需要在eventmachine之上有一个无限循环,它不断读取redis队列.下面是我的代码.递归是正确的方法吗?我试过循环do循环,但无法让它以这种方式工作. require 'em-hiredis'def read d = @redis.blpop 'queue', 0 d.callback do |_, value| p value read end.errb 我需要在eventmachine之上有一个无限循环,它不断读取redis队列.下面是我的代码.递归是正确的方法吗?我试过循环do循环,但无法让它以这种方式工作.

require 'em-hiredis'def read  d = @redis.blpop 'queue',0  d.callback do |_,value|    p value    read  end.errback do |e|    p e    EM.next_tick { read }  endendEM.run do  @redis = EM::Hiredis.connect  readend
解决方法 最好订阅redis pub / sub队列.
https://gist.github.com/957367
如果你真的需要一个循环,那么EM本身就是一个无限循环,你只需要使用next_tick一次又一次地安排你的工作:

def read  d = @redis.blpop 'queue',value|    EM.next_tick { read }  end.errback do |e|    EM.next_tick { read }  end end
总结

以上是内存溢出为你收集整理的ruby – 如何在eventmachine中实现无限循环全部内容,希望文章能够帮你解决ruby – 如何在eventmachine中实现无限循环所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/langs/1275183.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-06-08
下一篇 2022-06-08

发表评论

登录后才能评论

评论列表(0条)

保存