【问题标题】:How to see the stats about workers in Sidekiq?如何查看 Sidekiq 中有关工人的统计信息?
【发布时间】:2023-04-06 07:17:02
【问题描述】:

我们可以通过its API获得一些关于sidekiq状态的信息。没有适用于工作人员的 API 方法。

我想知道某个班级正在运行多少工人。例如,我有一个名为FooStreamer.rb 的类,它使用perform_async 方法执行。我想知道它目前正在运行多少个工人。

有什么想法吗?

【问题讨论】:

    标签: ruby-on-rails sidekiq


    【解决方案1】:

    由 Mike(sidekiq 的创建者)通过以下提交解决:

    https://github.com/mperham/sidekiq/commit/c606dd4fde8cdc795d2c750d211a74bf1b380217

    【讨论】:

      【解决方案2】:

      Sidekiq 带有一个 Sinatra Web 界面,您可以通过 mydomain.com/sidekiq 访问该界面。您只需要按照这些说明安装它(取决于您使用的是乘客还是独角兽)

      https://github.com/mperham/sidekiq/wiki/Monitoring

      据我所知,没有 API,但您可以轻松地遍历存储 Sidekiq 信息的 Redis 密钥,以计算在特定队列上工作的工作人员数量

      workers = redis.smembers("workers")
      
      workers.each do |worker|
              tokens = worker.split(":")
              machine = tokens[0]
              pid = tokens[1].split("-")[0]
              key = "worker:" + pid
              obj = redis.get(key)
      
              #obj will contain information on what queue this worker is processing
      end
      

      【讨论】:

      • 我无法让它工作。就我而言,即使没有工人在工作,它也会不断显示 4 个工人。
      【解决方案3】:

      您可以使用https://github.com/phstc/sidekiq-statsd 并使用 Graphite 检查统计信息。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2011-05-21
        • 2017-08-19
        • 2012-06-18
        相关资源
        最近更新 更多