首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >“`validate_queues”出现shoryuken错误:指定的队列

“`validate_queues”出现shoryuken错误:指定的队列
EN

Stack Overflow用户
提问于 2017-08-09 20:36:46
回答 1查看 586关注 0票数 1

我使用的是rails "Shoryuken“gem,但当我启动rails服务器时,在我的开发环境中的队列中出现了验证错误,下面是错误:-

gems/shoryuken-2.0.11/lib/shoryuken/environment_loader.rb:172:in ` `validate_queues':指定的队列"development_worker“不存在(ArgumentError)

我已经使用了以下设置:

config/config yuken.yml

代码语言:javascript
复制
aws:
  access_key_id: <%= ENV["SQS_IAM"] %>
  secret_access_key: <%= ENV["SQS_IAM_SECRET"] %>
  region: <%= ENV["SQS_IAM_REGION"] %>
concurrency: 25  # The number of allocated threads to process messages. Default 25
delay: 0         # The delay in seconds to pause a queue when it's empty. Default 0
queues:
  - ["<%= Rails.env %>_worker", 1]

初始值设定项/shoryuken.rb yuken.rb

代码语言:javascript
复制
def parse_config(config_file)
  if File.exist?(config_file)
    YAML.load(ERB.new(IO.read(config_file)).result)
  else
    raise ArgumentError, "Config file #{config_file} does not exist"
  end
end

config = parse_config([Dir.pwd, 'config/shoryuken.yml'].join('/')).deep_symbolize_keys
Shoryuken::EnvironmentLoader.load(config)

我希望队列应该是特定于环境的。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2017-08-09 20:42:31

Ravindra,看看shoryuken的code,你得到了错误,因为你没有创建一个名为development_worker的SQS队列,这是正确的吗?

您需要为每个开发人员创建一个队列,因为shoryuken将在每个开发人员的计算机上运行。如果你不这样做,每台计算机的所有shoryuken进程都将轮询同一队列的消息。假设有两个shoryuken进程,sh1sh2,分别对应于dev1和dev2机器。如果dev1向dev-queue发送SQS msg,则sh2进程能够轮询dev1发送的消息。

如果你希望避免在亚马逊网络服务中创建队列,你可以看看this

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/45590894

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档