sidekiq工人在跑步后卡住了

时间:2018-10-03 14:51:50

标签: ruby-on-rails ruby sidekiq worker sidekiq-monitor

我最近一直在测试一些代码,但发现自己处于一种奇怪的状况。让我尝试解释一下。 我有多个代码段(超过500个)执行以下操作: -解析字符串 -解析JSON -解析数组 -通过法拉第运行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-nag

有时候,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

非常感谢您,我希望收到您的来信。

0 个答案:

没有答案