Tag: resque

在开发模式下重新激活多个worker

嗨,是否有可能在开发过程中同时运行多个Resque工作人员? 我找到了这段代码,但不确定它是否会起作用以及如何… http://pastebin.com/9GKk8GwR 到目前为止,我正在使用该标准 bundle exec env rake resque:work QUEUE=’*’ redis-server /usr/local/etc/redis.conf

如何阻止上帝离开过时的Resque工人流程?

我正在试图了解如何通过上帝来监视resvis- trai的resvis-ci ,以便通过上帝停止resque手表不会留下陈旧的工人进程。 在下面我说的是工作进程,而不是分叉的作业子进程(即队列一直是空的)。 当我像这样手动启动resque worker时: $ QUEUE=builds rake resque:work 我会得到一个过程: $ ps x | grep resque 7041 s001 S+ 0:05.04 resque-1.13.0: Waiting for builds 一旦我停止工作任务,这个过程就会消失。 但是,当我与上帝开始相同的事情( 确切的配置在这里 ,基本上与resque / god示例相同 )就像这样…… $ RAILS_ENV=development god -c config/resque.god -D I [2011-03-27 22:49:15] INFO: Loading config/resque.god I [2011-03-27 22:49:15] INFO: Syslog enabled. I [2011-03-27 22:49:15] INFO: Using […]

如何使用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方法是否被解雇?

虽然简单的报道报道这是100%覆盖我不满意。 标记为焦点的规范我想确认所有Resque方法都被触发。 这是一个间谍还是双人的正确方法? 规格 describe ‘resque tasks’ do include_context ‘rake’ let(:task_paths) { [‘tasks/resque’] } before do invoke_task.reenable end # rubocop:disable all describe ‘resque’ do context ‘:setup’ do let(:task_name) { ‘resque:setup’ } it ‘works’ do invoke_task.invoke expect(Resque.logger.level).to eq(1) end end context ‘:scheduler_setup’ do let(:task_name) { ‘resque:scheduler_setup’ } it ‘works’ do expect(invoke_task.invoke).to be end end context ‘:clear’, […]

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

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

Rails Resque工作程序因PGError而失败:服务器意外关闭了连接

我在Ubuntu 9.10,Rails 2.3.4,ruby-ee 2010.01,PostgreSQL 8.4.2上有站点运行rails应用程序和resque worker在生产模式下运行 工人不断提出错误:PGError:服务器意外关闭了连接。 我最好的猜测是主resque进程建立与db的连接(例如authlogic在使用User.acts_as_authentic时执行此操作),同时加载rails app类,并且该连接在fork()ed进程中损坏(退出?),所以下一个分叉孩子们得到了一些破碎的全局ActiveRecord :: Base.connection 我可以使用此示例代码重现非常类似的行为,模仿resque worker中的fork / processing。 (AFAIK,libpq的用户建议无论如何都要在forked进程中重新创建连接,否则它不安全) 但是,奇怪的是当我使用pgbouncer或pgpool-II而不是直接的pgsql连接时,不会出现这样的错误。 那么,问题是我应该在哪里以及如何挖掘以找出为什么它被破坏以进行普通连接并且正在使用连接池? 还是合理的解决方法?