我不小心在Sidekiq中加入了一堆作业。我不想删除我的整个Redis存储(并将所有Sidekiq数据和排队作业重置为零)但我想删除所有可以由给定类识别的排队作业。我该怎么做? 最佳答案 这些答案很有帮助,但没有回答我最初的问题。这些解决方案可能已过时。您必须访问作业的参数并在循环范围内获取它的实际作业类。我尝试了上面的方法,但它没有按预期工作,因为job.klass没有返回您期望的结果。这是它目前在终端中返回的内容:queue.eachdo|job|putsjob.klassendActiveJob::QueueAdapters:
我的sidekiq初始化程序中有这个:Sidekiq.configure_serverdo|config|config.redis={url:"redis://#{ENV['REDIS_PORT_6379_TCP_ADDR']}:#{ENV['REDIS_PORT_6379_TCP_PORT']}/0",namespace:'Tyresearch'}end当我启动sidekiq时,它会在正确的主机和端口上正常启动:INFO:BootingSidekiq3.2.4withredisoptions{:url=>"redis://172.17.0.6:6379/0",:namespace=>
我正在尝试使用docker构建一个容器,但我无法连接sidekiq+redis,错误显示sidekiq_1|在127.0.0.1:6379(Errno::ECONNREFUSED)上连接到Redis时出错,似乎sidekiq正在尝试连接到本地主机,但由于我正在“理论上”构建redis+sidekiq+rails+postgres容器不在本地主机,它应该在redis镜像中。我的docker-compose.yml文件是这样的:version:'3'services:postgres:image:postgres:10.5volumes:-my_app-postgres:/var/lib/
我刚开始使用sidekiq和redis,我试图让sidekiq在Heroku上运行,但每次我部署Rails4应用程序时它似乎都会崩溃。我在Papertrail中收到此错误:May0311:16:37myappapp/worker.1:Nosuchfileordirectory@rb_sysopen-./log/sidekiq.logMay0311:16:37myappapp/worker.1:/app/vendor/ruby-2.2.0/lib/ruby/2.2.0/logger.rb:636:in`initialize'May0311:16:37myappapp/worker.1:/
1个作业是否可能被2个不同的sidekiq线程处理两次?我正在使用sidekiq将一些分析事件异步插入到mongodb集合中。我在该集合中看到大约15个重复项。我的猜测是2个工作线程同时选择了同一个作业,并将其添加到集合中。sidekiq是否确保作业仅由1个线程选择。我们可以忽略重新启动的情况,因为作业很小并且将在8秒内完成。使用sidekiq异步触发分析事件不是一个好的做法吗?我有哪些选择?我可以向事件添加一个唯一键并在插入之前检查它以避免插入重复项,但这是添加我永远不会使用的数据(+开销/查询)(并且它加起来有数百万个事件)。我能以某种方式确保sidekiq只处理一次作业吗?感谢您
运行god.rb来启动和监控Sidekiq这不起作用。在我的sidekiq神配置下。在生产环境中从终端手动运行sidekiq-C/srv/books/current/config/sidekiq.yml确实工作正常,但sidekiqgod.rb配置没有任何想法为什么会发生这种情况?日志中没有太多内容。God.watchdo|w|w.name="sidekiq"w.interval=30.secondsw.start="cd#{ENV['RAILS_ROOT']};sidekiq-C/srv/books/current/config/sidekiq.yml"w.stop="cd#{ENV
我正在Herokou和Redis上构建一个应用程序,它为包含手机号码的输入CSV文件中的每一行发送一条SMS消息。该消息是在如下所示的sidekiqworker中使用Twilio发送的。问题是,即使正在为CSV中的所有行发送SMS,数据库写入(TextMessage.create)和日志写入(puts语句)只执行对于CSV中的one行。CSV文件中的每一行都会生成一个Sidekiqworker。似乎只有一个Sidekiq工作人员具有I/O(数据库、文件)访问权限,并且它锁定了其他Sidekiq工作人员。任何帮助将不胜感激。sidekiqworker:require'sidekiq're
在Sidekiqwiki据称:Makeyourjobssmallandsimple我变得简单,我变得幂等和交易,但什么是小的?也许所需的内存和计算时间是一个很好的衡量标准?我的Sidekiq作业需要10秒到30分钟。我觉得10sec还可以,但是30min的长时间运行的任务呢?我正在将某种类型的所有数据从数据库加载到内存中,对它们运行冗长的计算,然后写回结果。一项worker工作中的所有三件事。这样好吗?或者我应该改为从一个工作作业调用多个运行小型计算的工作作业?问题是,这些小的计算可能需要一些复杂的哈希表来进行计算,建议不要将其保存在Redis中,只需要一些简单的小值。
有没有办法在不使用Ruby的情况下手动启动Sidekiq进程,而是通过将适当的消息发布到Redis中?它所期望的消息必须有某种约定。 最佳答案 这已在常见问题解答中介绍:https://github.com/mperham/sidekiq/wiki/FAQ#how-do-i-push-a-job-to-sidekiq-without-ruby 关于ruby-通过Redis手动启动Sidekiq作业,我们在StackOverflow上找到一个类似的问题: htt
这是我正在尝试做的事情:2.1.2:001>UpdateStyleRanks.perform_async这里是错误:NoMethodError:undefinedmethod`perform'for#这是我的worker:#app/workers/update_style_ranks.rbclassUpdateStyleRanksincludeSidekiq::Workerdefperformendend 最佳答案 worker没有命名要求。你可以这样做:classFooincludeSidekiq::Workerdefperfor