Tag: redis

sidekiq不处理工作,工作陷入队列

我有一个简单的应用程序,与twitter流api,sidekiq,独角兽和sinatra一起使用。 一切顺利,而不是……工作根本没有得到处理。 他们陷入了排队(我知道来自sidekiq网页用户界面)。 这是我的代码: Procfile: sidekiq: bundle exec sidekiq -C config/sidekiq.yml -e development -r ./lib/tweet_streamer.rb unicorn: bundle exec unicorn -c config/unicorn.rb redis: redis-stable/src/redis-server 配置/ unicorn.rb: listen 5000, :tcp_nopush => true timeout 30 preload_app true GC.respond_to?(:copy_on_write_friendly=) and GC.copy_on_write_friendly = true before_fork do |server, worker| end after_fork do |server, worker| end tweet_streamer.rb: require_relative “../config/tweetstream” require_relative “workers” class […]

如何在启动时自动创建resque worker?

好的,我正在制作我的第一个ruby应用程序。 谁知道把所有东西都搬到’生产’那就太复杂了。 到目前为止,我一直在努力配置乘客,让它在启动时运行,然后在启动时运行redis。 我的最后一项任务是在启动时添加1名工作人员。 现在,我必须ssh并运行我的rake命令rake workers:start 。 显然,当我想关闭ssh时,这并不好。所以我真的不知道下一步是怎么回事。 我尝试将resque默认配置复制到config.ru,它只是炸毁乘客有错误。 我还调查了一些人提到的resque-pool,但这已经超出了我的想象。 我所要做的就是在启动时添加1个工作人员。 在这一点上,这不是一个如此简单的app应该是最好的。

救援超时:: Redis Gem(Ruby)出错

我需要拯救从Redis库中引发的Timeout::Error但是我遇到了一个问题,抢救那个特定的类似乎不起作用。 begin Redis.new( { :host => “127.0.0.X” } ) rescue Timeout::Error => ex end => Timeout::Error: Timeout::Error from /Users/me/.rvm/gems/ree-1.8.7-2011.03@gowalla/gems/redis-2.2.0/lib/redis/connection/hiredis.rb:23:in `connect’ 当我试图拯救Exception它仍然无效 begin Redis.new( { :host => “127.0.0.X” } ) rescue Exception => ex end => Timeout::Error: Timeout::Error from /Users/me/.rvm/gems/ree-1.8.7-2011.03@gowalla/gems/redis-2.2.0/lib/redis/connection/hiredis.rb:23:in `connect’ 如果我尝试手动提升exception,我可以拯救它,但不知道为什么我从Redis Gem(2.2.0)中调用它时无法解救它。 begin raise Timeout::Error rescue Timeout::Error => ex puts ex end Timeout::Error => nil […]

Redis :: CommandError:ERR客户端发送了AUTH,但没有设置密码

这必须是一些错误的配置 我在localhost上安装了redis。 尝试通过Rails控制台连接到它时 Redis.new(:host => ‘localhost’, :port => 6379) 我无法发送命令而且我得到了 Redis::CommandError: ERR Client sent AUTH, but no password is set 我不记得设置密码,也不知道在哪里设置密码 如果我使用不同的URL(如rediscloud或redistogo),我可以发送命令(按照设置密码) 从我的理解错误说我发送密码,但redis没有密码。 但是,正如您所看到的,我没有设置任何密码.. 有没有办法调试这个?

resque故障转移redis的解决方案

由于集群Redis仍然在工作,Resque中是否存在自动故障转移到Redis从站的机制,如果主机出现故障?

简单使用EM :: Synchrony#sync导致’根光纤’FiberError – 我的错?

这个计划 require ’em-synchrony’ ## v1.0.0 require ’em-hiredis’ ## v0.1.0 module EventMachine module Hiredis class Client def self.connect(host = ‘localhost’, port = 6379) conn = new(host, port) EM::Synchrony.sync conn.connect conn end alias :old_method_missing :method_missing def method_missing(sym, *args) EM::Synchrony.sync old_method_missing(sym, *args) end end end end EventMachine.synchrony do redis = EM::Hiredis.connect redis.set(‘foo’, ‘bar’) puts redis.get(‘foo’) EM.stop end 像这样死 […]

如何远程检查RedisCloud DB中的数据?

我正在使用Heroku来托管一个简单的Ruby on Rails测试应用程序来学习如何使用Redis。 我正在使用RedisCloud作为我的Redis服务提供商。 在本地,我可以使用Redis CLI检查我的Redis数据库,但是如何检查我的Heroku应用程序正在使用的RedisCloud数据库中的数据? RedisCloud提供了一个显示统计信息的仪表板,但不显示实际数据。 此外,我尝试使用Redis桌面管理器软件,但它有太多的错误,让我可以远程连接到我的RedisCloud数据库。

如何从Ruby中的MULTI块中读取Redis?

我在MULTI事务中封装了一组复杂的Redis命令,但事务中的逻辑依赖于Redis中已有的值。 但是交易中的所有读取似乎都返回nil 这是一个演示问题的示例: [Dev]> $redis.set(“foo”, “bar”) => “OK” [Dev]> $redis.multi{ $redis.set(“foo”, “baz”) if $redis.get(“foo”) == “bar” } => [“bar”] [Dev]> $redis.get(“foo”) => “bar” 显然我希望最后一个返回值是’baz’ – 我怎么能实现这个目标?

如何使用ActionController :: Live以及Resque + Redis(用于聊天应用程序)

我正在尝试为我的rails应用程序构建聊天function。 我正在使用ActionController::Live , Puma , Resque , Redis 。 所以基本上在这种情况下,redis subscribe方法使用resque在后台运行。 到目前为止,我所做的是每当用户在下面的表单字段即聊天框中输入文本时 ..请求来到ChatBoxController中的Publish方法。 def publish $redis.publish(“chat_message:1:1”, “#{params[:query]}”) respond_to do |format| format.js {render nothing: true} end end ..现在我有一个以下背景Resque工作运行与下面的代码用于测试目的。 因此,每当发布聊天消息时,它打印的data都很好。 但是,我如何将ActionController::Livefunction添加到后台作业? 或者我如何进行此实施? 需要帮助这个设计。 class ChatBoxInitiator @queue = :chat_box_initiator private def self.perform $redis.subscribe(‘chat_message:1:1’) do |on| on.message do |event, data| puts “====#{data}” return data end end end end 我想在Users/show页面中显示Server […]

知道resque工人何时完成了工作

我正在与Resque-worker(5名工人)一起工作。 现在,当这个工作完成/完成时,我想触发另一个工作人员来处理存储在db中的前一个工作人员的数据。 这样做最合适的方法是什么?