问题标签 [shoryuken]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
1761 浏览

ruby - 使用 Shoryuken (ruby) 中的 Amazon SQS 自定义重试延迟

我正在将使用sidekiq制作的后台作业处理服务迁移到基于Amazon SQS的shoryuken。使用sidekiq,您可以使用以下方法自定义重试模式:sidekiq_retry_in

在我的例子中,retry_count返回基于外部配置的下一次重试的延迟。使用shoryuken时,只要消息未被消费者应用程序删除,SQS 就会自动处理重试。但是使用shoryuken,您可以通过使用更改延迟,retry_intervals文档仅说明如何设置固定值:

我需要使用与sidekiq相同的方式自定义重试延迟,使用retry_count根据外部数据返回不同值的方法。这是可能的还是存在使用shoryuken做到这一点的解决方法?

0 投票
2 回答
1125 浏览

ruby-on-rails - 无法在从 SQS 读取的生产环境中运行 rails shoryuken gem

shoryuken gem 是从 aws SQS 读取的 Rails 应用程序的后台工作程序。

我可以在当地运行 shoryuken 工人,它工作正常。当我在 AWS 的生产环境中运行它时,它不起作用。如何在生产环境中运行 shoryuken?我还认为这可能是我的 aws 安全组的问题。我们正在使用 VPC。我应该允许 SQS 端口吗?如果是这样,SQS 运行在哪个端口?我也想知道为什么它询问端口 5432,这是我们 Postgres DB 的端口。

0 投票
1 回答
3182 浏览

ruby-on-rails - 在 Rails 项目中设置 Shoryuken、Active Job 和 Amazon SQS

作为 AWS 的新手,根据设置文档让 Shoryuken gem(带有 Active Job 和 Active Record)工作有点曲折。

  1. 中间件:我不确定中间件是否是设置的必要部分,因为它只在基本示例中产生。如果您需要在从队列中获取消息之前或之后执行操作,我的理解是否正确。

  2. Shoryuken 插入但不从 SQS 获取消息:此时,Shoryuken 正在将消息传递到 SQS 队列,我可以在 AWS 控制台中看到消息(在可见的消息中)但 Shoryuken 没有获取它们以执行,即使没有任何内容队列。

安慰

升龙拳.yml

我如何才能弄清楚为什么 Shoryuken 没有检索到这些消息并对其采取行动?

(我已将此问题发布到 GitHub,但在没有收到回复后重新发布在这里)。

0 投票
2 回答
1511 浏览

ruby-on-rails - 使用 shoryuken 进行后台作业时如何确定并发(线程)?

在我的 Ruby on Rails 应用程序中,我使用shoryouken进行后台处理。我的应用程序中有很多 sqs 队列(6-7)。其中一个队列有 2000-3000 个作业,worker 处理这 2-3k 个作业大约需要 3 个小时,默认并发为 25。所以我们可以根据哪些因素决定增加并发数(即线程来处理作业)。如果问题中有任何不清楚的地方,请发表评论。

0 投票
2 回答
1177 浏览

ruby-on-rails - 环境特定的 shoryuken 配置

我通过运行使用shoryuken gem

和 shoryuken.yml 是

这工作正常。但是,我想使用环境特定的队列,例如production_high在生产中使用。我确保这些队列存在于

config/initializers/aws.rb使用

0 投票
1 回答
654 浏览

ruby-on-rails - `validate_queues' 的 shoryuken 错误:指定的队列

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

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

我使用了以下设置:-

配置/shoryuken.yml

初始化程序/shoryuken.rb

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

0 投票
1 回答
434 浏览

ruby-on-rails - 处理作业轨道时出现反序列化错误

我正在尝试使用 AWS 工作人员为邮件创建后台作业,通过覆盖设计方法

我将邮件推送到 SQS 队列,当工作人员处理作业时(ActiveJob::Base.execute(params)我收到以下错误

0 投票
0 回答
331 浏览

ruby-on-rails - 使用 shoryuken 手动重试 sqs 失败的作业

我目前正在构建一个管理仪表板来监控我们的 SQS 队列,受到这篇中型帖子的启发。

我设法在我的自定义 shoryuken middelware 中使用此代码正常工作:

因此,我在管理仪表板中显示了所有失败的作业,以及有关错误的详细信息。那是第一步。现在我希望能够手动重试那些工作(开始时一个)。我已经在网上搜索了很长时间,但没有找到任何可以做的事情(使用 shoryuken 或直接使用 sqs sdk)。

有没有人知道手动重试失败的消息?我们已经介绍了死信队列,但我们不希望使用它们。

非常感谢任何提示或起点:)

0 投票
1 回答
46 浏览

amazon-sqs - 通过 SQS 向设备发送消息

我还在学习 SQS,我用 SQS 和一个用 Shoryuken 接收消息的 Ruby 应用程序做了一些成功的测试。这工作正常。我们希望在人们家中安装 1000 台物联网设备。这些设备将向后端发送事件,这些事件将被拾取。到现在为止还挺好。

现在我们还需要将消息发送回设备(不那么频繁,但仍然如此)。我也可以为此使用 SQS 吗?如何定位设备?

我是否需要添加 MessageAttribute 来标识目的地?或者为每个设备创建一个队列?

这里有哪些最佳实践?

0 投票
2 回答
771 浏览

ruby-on-rails - 请求中包含的安全令牌无效。Aws::SQS::Errors::InvalidClientTokenId

当我尝试启动 shoryuken 时出现此错误

请求中包含的安全令牌无效。(Aws::SQS::Errors::InvalidClientTokenId)。即使这对我以前有用。

消息添加到队列但 Worker 无法访问队列。