Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/ruby/20.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ruby rails sidekiq后台进程_Ruby_Ruby On Rails 3_Background Process_Sidekiq - Fatal编程技术网

Ruby rails sidekiq后台进程

Ruby rails sidekiq后台进程,ruby,ruby-on-rails-3,background-process,sidekiq,Ruby,Ruby On Rails 3,Background Process,Sidekiq,我在配置sidekiq服务器时遇到问题,当我刷新页面时,进程似乎正在前台运行/消费者/获取我需要将其永久放置在后台 用户控制器.rb message.rb 我想你需要移动这个街区 @consumer.loop do |message| end 在您的worker内部,我认为消耗是在块执行之后完成的。Hassan,@consumer.loop是一个连续循环,实现是while(true){process mesesage}。我不知道这个过程是如何返回的事实上,现在我已经仔细研究了它,sidekiq

我在配置sidekiq服务器时遇到问题,当我刷新页面时,进程似乎正在前台运行/消费者/获取我需要将其永久放置在后台

用户控制器.rb message.rb
我想你需要移动这个街区

@consumer.loop do |message|
end

在您的worker内部,我认为消耗是在块执行之后完成的。

Hassan,@consumer.loop是一个连续循环,实现是while(true){process mesesage}。我不知道这个过程是如何返回的事实上,现在我已经仔细研究了它,sidekiq不应该返回任何东西给你。此行:return@message=message.new(hash)if hash[“concern”]=“order\u create”或hash[“concern”]=“first\u payment”没有将控制权返回给调用方。
class ConsumerWorker

  include Sidekiq::Worker

  def perform(message)
    payload = message.first["payload"]
    hash = JSON.parse(payload)
    return @message = Message.new(hash) if hash["concern"] == 'order_create' or hash["concern"] == 'first_payment'
  end

end
class Message

  attr_reader :bundle_id, :order_id, :order_number, :event

  def initialize(message)
    @payload = message["payload"]
    @bundle_id = @payload["bundle_id"]
    @order_id  = @payload["order_id"]
    @order_number = @payload["order_number"]
    @event = message["concern"]
  end
end
@consumer.loop do |message|
end