问题标签 [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.
ruby-on-rails - SQS + Shoryuken:尽管 auto_delete=true,但 FIFO 中的接收计数很大
我有一个 AWS SQS FIFO 队列配置为根据内容对消息进行重复数据删除。我的 Rails 应用程序使用 Shoryuken 工作人员从 SQS 获取消息。这是工人代码:
如您所见,它被配置为在收到消息后自动从队列中删除消息。但是今天发生了一件奇怪的事情。我注意到工人执行了大量相同的任务。当我在 AWS 控制台中打开 SQS 队列时,我看到其中有一条消息,看起来它被工作人员多次接收。这是它的属性,注意接收计数:
消息 ID:9207017f-ad15-4de8-97c4-cf391c8f3840
大小:1.3 KB
身体的MD5:55918bf431e31e4badae0720453aea35
发送:2018-12-11 10:40:53.978 GMT-08:00
首次收到:2018-12-11 10:40:54.045 GMT-08:00
接收计数:2654
消息属性计数:0
消息组 ID:默认消息
重复数据删除 ID:c5fb9acda5e3c9c82dc0ae3f0b1cff5bd7067d0cf942075c4c38dddd1fbc1ed1
序号:37288893882837472512
知道这怎么可能发生吗?
平台详细信息:Ubuntu,ruby 2.5.3,Rails:5.2.2,Shoryuken:4.0.2
rubygems - 如何使用 Shoryuken 获得工作统计数据?
有没有办法通过 API ( https://github.com/mperham/sidekiq/wiki/API ) 从 Shoryuken 获得类似的统计数据从 Sidekiq 获得工作统计数据?
amazon-sqs - shoryuken 工作人员在失败后以最后一次重试间隔无限次重试
我正在使用 shoryuken_options retry_intervals: [120, 240] 根据维基https://github.com/ruby-shoryuken/shoryuken/wiki/Worker-options#retry_intervals但注意到失败后,第一次和第二次重试尝试为预期的,但在第二次重试后,该消息也在每 240 秒后继续重试(即与上次重试间隔相同)。
虽然调试发现这段代码是这个问题的可能原因。 https://github.com/ruby-shoryuken/shoryuken/blob/master/lib/shoryuken/middleware/server/exponential_backoff_retry.rb#L33-L59
每当它超过接收计数时,它就会根据上次重试间隔设置下一个可见性超时,这就是它成为无限重试序列的原因。
除了在应用程序端覆盖这些库方法之外,还有什么方法可以摆脱这种情况?
ruby-on-rails - 活动作业:嵌套作业完成后如何发送电子邮件
示例:我有一个ImportJob,它遍历联系人页面并触发ParserJob ,该 ParserJob遍历联系人并为每个联系人触发一个ProcessJob。我拆分了这些工作以提高性能。
有没有办法在执行最后一个ProcessJob后设置回调并发送一封电子邮件通知用户导入已完成?
我在开发环境中使用 Sidekiq,在生产环境中使用 Shoryuken。我正在使用 Ruby 2.6.4 和 Rails 6.1