ruby-on-rails - sidekiq 工作人员在运行一段时间后卡住了
问题描述
我最近一直在测试一些代码,我发现自己处于一个奇怪的境地。让我试着解释一下。我有多段代码(超过 500 段)执行以下操作: - 解析字符串 - 解析 JSON - 解析数组 - 通过 Faraday 运行 HTTP/HTTPS 请求
基本上,它们都在后台协同工作以提取和解析数据。
我有一个 30/40 的 sidekiq 工作人员,他们工作得很好。在某些时候,工人会随机(但通常在 1 天后)卡住。它们通常需要 1 秒到 1 分钟,在某些时候,HTTP/HTTPS 工作人员会卡住并持续很长时间,系统会变得越来越慢。
我从不同的地方读过: - https://github.com/mperham/sidekiq/issues/862(HenleyChiu于 2013 年 10 月 5 日发表评论 - 以及其他一些) - https://github.com/mpowered/sidekiq-唠叨
有时 Sidekiq 工作人员会卡住,如果发生这种情况,人们正在编写代码(或黑客)来重新启动 Sidekiq。你们是否发现 Sidekiq 存在同样的问题,尤其是在后台作业与 HTTP/HTTPS 请求相关的情况下?
所以我的问题是:
- 有没有人发现他/她自己也有类似的情况?你做了什么?
- 在后台作业中是否有办法确保所有 HTTP/HTTPS 连接都被丢弃?例如,我可以确保使用以下代码(最后)关闭所有 MYSQL 连接。
- 实际上是 HTTP/HTTPS 可能会在 Sidekiq 中产生问题吗?有没有办法杀死挂起的 HTTP/HTTPS 连接?不确定在 Ruby 中使用 Timeout 并不理想......
任何人都有一些想要分享的代码示例或关于如何修复它的一些想法?
ensure
ActiveRecord::Base.clear_active_connections!
ActiveRecord::Base.connection.close
非常感谢您,我期待您的回音。
解决方案
推荐阅读
- python - Matplotlib 条形图切出条形(并且不显示所有值)
- python - pandas - 解析 MySql 结果
- html - 附加图像时如何使引导程序的输入组中的边框保持一致?
- spss - SPSS 中的嵌套宏和以计算为条件的 !IF-!THEN 命令
- r - 如何在 R 中创建简单的时间戳可视化
- c# - 检查输入是否为 100 的因子在 C# 中并不总是正常工作
- reactjs - useState 设置方法和状态在 onClick 函数中没有改变
- outlook-addin - Outlook 365,检索 MAPI 会话时出现错误 8000FFFF(意外)
- javascript - 每天 8:00、12:30、17:00 运行 Gmail Google Apps 脚本
- json - {"d":null} 附加在 ASMX Web 服务响应中