标签: sidekiq

Resque vs Sidekiq?

我目前正在使用Resque我的后台进程,但最近我听到了很多关于sidekiq.有人可以比较/区分吗?

特别是我想知道有没有办法以编程方式监控工作是否完成 sidekiq

ruby resque ruby-on-rails-3 sidekiq

125
推荐指数
3
解决办法
4万
查看次数

如何清除sidekiq的所有工作?

我在Rails应用程序中使用sidekiq作为后台任务.现在工作的数量变得更多,所以我想清除所有的工作.我在控制台中尝试了以下命令

Sidekiq::Queue.new.clear
Run Code Online (Sandbox Code Playgroud)

但它给出了以下错误.

NameError: uninitialized constant Sidekiq::Queue 
Run Code Online (Sandbox Code Playgroud)

如何清除sidekiq的所有工作?

ruby ruby-on-rails sidekiq

101
推荐指数
9
解决办法
6万
查看次数

是否有控制台命令来查看队列中的什么并清除Sidekiq中的队列?

我习惯使用delayed_jobs方法进入控制台查看队列中的内容,以及在需要时清除队列的难易程度.Sidekiq中有类似的命令吗?谢谢!

ruby-on-rails sidekiq

95
推荐指数
4
解决办法
7万
查看次数

清除sidekiq队列

我是这个永远奔跑的工人.

class Worker
  include Sidekiq::Worker
  sidekiq_options queue: "infinity", retry: true

  def perform(params)
    # ...
    self.class.perform_in(30.seconds, params)
  end
end
Run Code Online (Sandbox Code Playgroud)

问题是我在启动时加载工人,就像这样. config/initializers/load_workers.rb

Rails.application.config.after_initialize do  
  if ENV["SIDEKIQ"] == "1"
    Worker.perform_async({})
  end
end
Run Code Online (Sandbox Code Playgroud)

用这个来启动sidekiq SIDEKIQ=1 sidekiq --verbose --environment production -C config/sidekiq.yml.

这意味着老工人要停下来,既有目前正在运行的人,也有被重新安排的人.

我尝试在启动时运行它(在加载新工作之前),但这不起作用.

q = []
q += Sidekiq::RetrySet.new.select { |job| job.klass.match(/Worker/) }
q += Sidekiq::Queue.new("infinity").select { |job| job.klass.match(/Worker/) }
q += Sidekiq::ScheduledSet.new.select { |job| job.klass.match(/Worker/) }
q.each(&:delete)
Run Code Online (Sandbox Code Playgroud)

在5-ish部署之后,队列中有大量重复的工作程序安排在稍后.那么,有没有办法清除一个队列中的每一个并阻止已经重新安排的作业?

我正在使用sidekiq 3.0.

ruby-on-rails sidekiq

73
推荐指数
3
解决办法
5万
查看次数

Sidekiq没有处理队列

Sidekiq可能会阻止处理队列中的作业有什么可能的原因?队列已满.日志文件sidekiq.log表示根本没有活动.因此队列已满,但日志为空,而Sidekiq似乎不处理项目.似乎没有工人处理工作.重新启动Redis或使用FLUSHALLFLUSHDB将其刷新为无效.Sidekiq已经开始了

捆绑exec sidekiq -L log/sidekiq.log

并生成以下日志文​​件:

2013-05-30..Booting Sidekiq 2.12.0 using redis://localhost:6379/0 with options {}
2013-05-30..Running in ruby 1.9.3p374 (2013-01-15 revision 38858) [i686-linux]
2013-05-30..See LICENSE and the LGPL-3.0 for licensing details.
2013-05-30..Starting processing, hit Ctrl-C to stop
Run Code Online (Sandbox Code Playgroud)

你怎么知道出了什么问题?有没有隐藏的日志文件?

redis ruby-on-rails-3 sidekiq

57
推荐指数
4
解决办法
3万
查看次数

如何密码保护我的/ sidekiq路由(即需要对Sidekiq :: Web工具进行身份验证)?

我在rails应用程序中使用sidekiq.默认情况下,任何人都可以通过在网址后附加"/ sidekiq"来访问Sidekiq.我想密码保护/验证sidekiq部分.我怎样才能做到这一点?

ruby rescue redis ruby-on-rails-3 sidekiq

53
推荐指数
6
解决办法
2万
查看次数

如何重置sidekiq计数器?

在我的sidekiq仪表板中,我在左边看到一个带有计数器的盒子

Processed 168
Failed 111
Busy 0
Scheduled 0
Retries 0
Enqueued 0
Run Code Online (Sandbox Code Playgroud)

如何将它们全部重置为0?

ruby ruby-on-rails sidekiq

49
推荐指数
5
解决办法
2万
查看次数

让sidekiq立即执行一份工作

目前,我有一个像这样的sidekiq工作:

class SyncUser
  include Sidekiq::Worker

  def perform(user_id)
    #do stuff
  end
end
Run Code Online (Sandbox Code Playgroud)

我正在这样的队列中找到一份工作:

SyncUser.perform_async user.id
Run Code Online (Sandbox Code Playgroud)

当然这一切都有效但调用perform_async和实际执行的作业之间存在一点滞后.

还有什么我可以告诉sidekiq立即执行这项工作吗?

ruby sidekiq

47
推荐指数
2
解决办法
3万
查看次数

如何在生产服务器中运行sidekiq?

我有一个apache + passenger服务器.

我将如何sidekiq在生产中运行?运行所需的任何配置

bundle exec sidekiq
Run Code Online (Sandbox Code Playgroud)

谢谢

ruby-on-rails sidekiq

44
推荐指数
3
解决办法
5万
查看次数

Sidekiq工作陷入了排队

Sidekiq一直在开发模式中完美地工作.既然我正在尝试在生产中使用它,那么所有的工作都只是坐在队列中,而不是一直在运行.任何人都可以指出我如何解决这个问题的正确方向?

ruby-on-rails redis ubuntu-10.04 ruby-on-rails-3 sidekiq

42
推荐指数
2
解决办法
2万
查看次数