Ruby on rails 由于brpop,Rails Sidekiq Redis长期运行

Ruby on rails 由于brpop,Rails Sidekiq Redis长期运行,ruby-on-rails,sidekiq,newrelic,Ruby On Rails,Sidekiq,Newrelic,Newrelic使用Sidekiq对新鲜的Ruby on Rails应用程序进行监控,目前还没有实现多少逻辑,也没有多少流量,这表明Redis在brpop操作上花费了很长时间(大约2-3秒) 为什么呢 这是性能方面的问题吗?根据本期中的信息 这是Sidekiq的正常行为: 见@jonhyman评论 brpop也是一个阻塞命令,所以如果没有很多作业,那么每个作业都会阻塞1秒 请参见@ryansch注释: 你想要那种行为。这就是sidekiq在工作时所做的 等待工作。这是一个长期运行的阻塞操作,因为

Newrelic使用Sidekiq对新鲜的Ruby on Rails应用程序进行监控,目前还没有实现多少逻辑,也没有多少流量,这表明Redis在
brpop
操作上花费了很长时间(大约2-3秒)

为什么呢


这是性能方面的问题吗?

根据本期中的信息 这是Sidekiq的正常行为:

@jonhyman
评论

brpop也是一个阻塞命令,所以如果没有很多作业,那么每个作业都会阻塞1秒

请参见
@ryansch
注释:

你想要那种行为。这就是sidekiq在工作时所做的 等待工作。这是一个长期运行的阻塞操作,因为redis 然后,你可以在sidekiq收到工作通知后立即告诉他。这个 另一种选择是我们当然不想要的投票。 我在我的new relic仪表板上看到了同样的东西。不用担心

所以这不是问题。Sidekiq实际上是在试图变得更加机智,让Redis通过在
brpop
操作上保持连接来完成让他知道何时有新任务的肮脏工作