4

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

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

有任何想法吗?

4

3 回答 3

4

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

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

于 2013-01-28T17:53:43.703 回答
1

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
于 2013-01-21T16:37:17.553 回答
0

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

于 2014-08-30T15:25:20.517 回答