草庐IT

ruby - 优雅地关闭 sidekiq 进程

有谁知道如何找到sidekiq的pid文件来优雅地关闭它?正在运行psax|grepsidekiq然后运行​​sidekiqctlstop始终给出nosuchpidfile错误?Cntl-C和Cntl-D似乎也没有效果。关闭进程窗口并重新打开一个新窗口并不会终止进程,因为它似乎正在作为守护进程运行。我发现的唯一一致的修复方法是重新启动。 最佳答案 用它来强行杀死sidekiq。ps-ef|grepsidekiq|grep-vgrep|awk'{print$2}'|xargskill-9

ruby - Sidekiq 在工作人员完成后不释放内存

我有大约6个Sidekiqworker执行JSON爬行。根据端点的数据集大小,它们在1分钟到4小时之间完成。特别是,观看需要4小时的长视频,我发现随着时间的推移,内存有非常轻微的增加。这不是问题,直到我想再次安排相同的worker作业。内存不会被释放并堆积起来,直到我遇到LinuxOOMKiller,它摆脱了我的Sidekiq进程。内存泄漏?我观察了ObjectSpace中不同对象的数量:ObjectSpace.each_object.inject(Hash.new(0)){|count,o|count[o.class]+=1}那里并没有真正增加,哈希集、数组等保持不变,垃圾收集器清除

ruby-on-rails - "SSL_read: cert already in hash table"异步发送邮件时

当使用ActionMailer异步发送延迟电子邮件时,我不断收到OpenSSL::SSL::SSLError消息SSL_read:certalreadyinhashtable。我们使用Sidekiq异步发送所有电子邮件。当在SidekiqGitHub存储库中将这个问题作为一个问题提出时,我被告知Sidekiq对SSL连接一无所知,也不知道如何管理SSL连接。我们的应用托管在Heroku上,它正在运行OpenSSL0.9.8k2009年3月25日。我们在其他作业中多次看到此错误,并且发现作业有时得到处理,但有时却没有。这是一个OpenSSL线程问题,其中多个Sidekiq线程试图使用相同

ruby-on-rails - Ruby on Rails 中的消息队列

人们将哪些消息队列用于他们的Rails应用程序,以及选择它的决定背后的驱动力是什么。最新的Twitter对其内部队列Starling跌倒的宣传是否会影响任何现有的设计决策。我正在开发一个需要消息队列来处理一些后台任务的应用程序,我没有做过太多这方面的工作,而且我过去看到的大部分内容都是关于Starling和Workling的,并且老实说,应用程序不是很大,这个解决方案可能就足够了,但我很想获得集成最佳解决方案的经验,因为我确信我会在某个时候将一个集成到更大的应用程序中。您会为Rails应用程序推荐哪些消息队列???编辑:感谢您的建议,我将在本周末查看其中的一些建议。再次编辑:我环顾四周

ruby - 让 sidekiq 立即执行作业

目前,我有一个像这样的sidekiq工作:classSyncUserincludeSidekiq::Workerdefperform(user_id)#dostuffendend我正在像这样在队列中放置一个作业:SyncUser.perform_asyncuser.id当然这一切都有效,但在调用perform_async和作业实际执行之间有一点延迟。我还能做些什么来告诉sidekiq立即执行作业吗? 最佳答案 这里有两个问题。如果你想立即执行一个作业,在当前上下文中你可以使用:SyncUser.new.perform(user.id

ruby-on-rails - 如何重置我的 sidekiq 计数器?

在我的sidekiq仪表板中,我在左侧看到一个带有计数器的框Processed168Failed111Busy0Scheduled0Retries0Enqueued0如何将它们全部重置为0? 最佳答案 重置统计信息:Sidekiq::Stats.new.reset引用:AddresetstatstoWebUIsummaryboxandmethodtoAPI此外,您现在可以清除特定统计信息:Sidekiq::Stats.new.reset('failed')的单一统计数据或Sidekiq::Stats.new.reset('faile

ruby-on-rails - 如何清除 Sidekiq 中的所有作业?

我在Rails应用程序中使用sidekiq执行后台任务。现在job的数量变多了,所以我想清除所有的job。我在控制台中尝试了以下命令Sidekiq::Queue.new.clear但它给出了以下错误。NameError:uninitializedconstantSidekiq::Queue如何清除sidekiq中的所有作业? 最佳答案 您可以按照issue1077上的说明进行操作或如本报告所述blogatnoobsippets两者都建议我们执行以下操作,并且可以在Rails控制台上完成:Sidekiq.redis(&:flushdb

ruby - Resque vs Sidekiq?

关闭。这个问题需要更多focused.它目前不接受答案。想改进这个问题吗?更新问题,使其只关注一个问题editingthispost.关闭8年前。Improvethisquestion我目前正在为我的后台进程使用Resque,但最近我听到很多关于sidekiq的提示。有人可以比较/区分吗?特别是我想知道是否有一种方法可以通过编程方式监控作业是否在sidekiq中完成

javascript - 什么是适合 node.js 的类似 Sidekiq 的好作业系统?

(这里提出的大多数关于这个主题的问题都有点陈旧,我想知道这些年来Node生态系统发生了什么变化。)我基本上是想在我的node.js应用程序中实现一个作业队列。我听说过Sidekiq,也见过它在Ruby世界中的实际应用,它的工作做得多么出色,我想知道node中是否存在类似的东西。Worker将用Javascript编写,因此它不必是多语言的(如果是就很好,但绝对不是必需的)。一大优点是可以轻松可视化当前正在运行的作业、失败的作业等。你们用什么?您知道哪些库/服务符合这些要求? 最佳答案 尝试https://github.com/tas

logging - Golang go-workers自定义日志记录中间件?

我正在构建一个Golang实现Sidekiq的应用程序-兼容jrallison/go-workers工作队列和围绕Sirupsen/logrus的自定义日志记录包装器用于编码的JSON日志。现在,我的所有应用程序(除了go-workers到目前为止)都在中心位置使用我的记录器包装器,以确保其输出的100%与JSON兼容。请注意,第1行和第2行是来自中央记录器的正确JSON,但是当go-workers初始化时,我们看到第3行来自错误的纯文本记录器。{"db":{"Mapper":{}},"instance_id":"1","level":"info","msg":"Db:Connecte