草庐IT

sidekiq-superworker

全部标签

ruby-on-rails - Sidekiq worker优先级设置

目前正在使用sidekiq运行我的后台作业。一次同时运行10个作业。这些工作不是小工作。完成这项工作需要6-8个小时。与此同时,我需要运行一些较小的作业(需要2-3分钟)。目前我无法运行这些作业,直到上述10个作业中的任何一个完成。所以我需要等待6-8个小时才能完成这个小工作。但是这些作业应该在添加到队列后立即运行。是否有任何选项可以阻止任何一个进程来运行这种小型作业。我尝试了队列选项,但它在我的场景中也不起作用。这是我的sidekiq配置:concurrency:10:queues:-[web,7]-[default,3]谁能给我这个问题的解决方案? 最佳

ruby - 使用 RSpec 3 测试 sidekiq perform_in

RSpec3和sidekiq3.2.1。我已经正确设置了sidekiq和rspec-sidekiq。假设我有一个名为WeatherJob的worker,它将天气状态从sunny更改为rainy:classWeatherJobincludeSidekiq::Workerdefperformrecord_idweather=Weather.findrecord_idweather.updatestatus:'rainy'endend我这样使用这个worker:WeatherJob.perform_in15.minutes,weather.id。在规范中,我使用Timecop来模拟时间:re

ruby-on-rails - 从 Sidekiq Worker 中渲染 Rails View

我有一个Sidekiqworker,它执行一些后台处理,然后最终将成功消息发布到第3方API。我发布的这条消息本质上是一条“谢谢”消息,可以包含HTML。在邮件中,我想以格式正确的方式链接回我的网站。这对我来说自然听起来像是一种观点。我喜欢简单地使用View模板,将其呈现为HTML,最后将其发布到API。我这辈子都不知道如何从我的Sidekiqworker中渲染View。我考虑过设置一个虚拟Controller/View组合并从工作人员内部实例化它,但这似乎是错误的。任何输入将不胜感激。 最佳答案 在您的worker中,您可以直接使

ruby-on-rails - sidekiq 重试参数耗尽

我从其他网站抓取潜在客户,并在我的网站上激活它们。使用Sidekiq,我每小时运行一次HealthCheckerWorker以停用我网站上的潜在客户,除非它仍在其他网站上正常运行。有时HealthCheckerWorker会抛出一个错误,即:错误的URI等...我的困境是,如果作业失败10次,现在在死作业队列中,lead仍然被认为是active尽管它可能早已在其他站点上消失了。我认为解决方案是添加一个sidekiq_retries_exhaustedblock,如下所示:sidekiq_retries_exhausteddo|lead_id|Lead.find(lead_id).dea

ruby-on-rails - sidekiq 中的 perform_in 和 perform_async 有什么区别?

我想用新的时间间隔更新旧的sidekiq作业。我该怎么做?是否可以通过perform_in选项。此外,我想知道perform_in和perform_async之间的明显区别。 最佳答案 您必须通过perform_in一次。perform_async立即被推送到队列中。除此之外,它们是相同的。你会调用perform_in(10.minutes) 关于ruby-on-rails-sidekiq中的perform_in和perform_async有什么区别?,我们在StackOverflow上

ruby - 使用 Sidekiq、Capistrano、Sinatra 进行部署

作为使用Sinatra部署capistrano的一部分:*executing`sidekiq:start'*executing"cd/var/www/nodes/current;nohupbundleexecsidekiq-eproduction-C/var/www/nodes/current/config/sidekiq.yml-P/var/www/nodes/current/tmp/pids/sidekiq.pid-r/var/www/nodes/current/app/nodes.rb>>/var/www/nodes/current/log/sidekiq.log2>&1&"无论

ruby - sidekiq+whenever+unicorn uninitialized constant ClassWorker 生产环境

我使用Rails4,sidekiq2.13.1,cron脚本每2分钟运行一次。第一次执行期间没有错误,但接下来的所有错误。我只在生产环境中遇到这个错误。我的worker位于app/workers中。我在application.rb中通过以下字符串将其包含在内:config.eager_load_paths+=%W(#{config.root}/app/workers)错误:2013-08-15T12:34:05Z31102TID-oh1d0WARN:{"retry"=>true,"queue"=>"default","class"=>"AllGlobalWorker","args"=>

ruby - 如何测试 Sidekiq 作业失败?

sidekiq中的作业,一旦出现异常,将被放入重试队列。正因为如此,并且因为任务是异步运行的,MyWorker.perform_async(...)永远不会抛出任务代码中生成的异常。但是在测试中,任务中出现的异常不会导致任务被放入重试队列。异常从perform_async中冒出。所以在测试中发生的事情是运行代码时不可能发生的事情。那么,什么是测试代码的最佳方法,这些代码会触发可能会失败并被放入重试队列的作业?请注意,以下内容似乎对测试没有影响:Sidekiq.default_worker_options={:retry=>true} 最佳答案