【问题标题】:Delete jobs of previous build in sidekiq在 sidekiq 中删除先前构建的作业
【发布时间】:2017-07-29 10:11:40
【问题描述】:

我有一个漫长且永无止境的工作,即应该一直运行的 rake 任务。 (这是 faye pub-sub 客户端一直在等待服务器端监听)。当应用程序部署在服务器上时,该作业被创建并工作,但这里的 问题 是,旧作业不会在每个新版本中被杀死,所以当我第二次部署时.. 有 2 个作业.我通过了 sidekiq api,我们可以通过查找 worker 来停止队列中的所有作业,但是在同一台服务器上还有其他应用程序正在运行,如果我删除所有繁忙的作业,我最终可能会影响其他应用程序。

这是我的工人 app/workers/subscriber.rb

    require 'rake'
    Rake::Task.clear
    Faye::Application.load_tasks
    class Subscriber
      include Sidekiq::Worker
      def perform
        Rake::Task['faye:subscriber'].invoke"
      end
end

这是我的初始化程序/sidekiq.rb

Sidekiq.configure_server do |config| 
    config.redis = { url: 'redis://localhost:6379' }
end

Sidekiq.configure_client do |config|
    config.redis = { url: 'redis://localhost:6379' } 
    Rails.application.config.after_initialize do
        Subscriber.perform_async
    end
end

有什么解决办法吗?还是我走错了方向?任何帮助将不胜感激。谢谢你:)

【问题讨论】:

    标签: ruby-on-rails web-deployment sidekiq rake-task faye


    【解决方案1】:

    你走错了方向。 Sidekiq 不是为永远或持续运行的工作而设计的。从 rake 任务中创建适当的服务。

    【讨论】:

    • 感谢您的回复,知道我可以用什么来永远运行这些作业吗?
    猜你喜欢
    • 2021-04-12
    • 2015-10-03
    • 2021-01-21
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-06-02
    • 1970-01-01
    相关资源
    最近更新 更多