2017-03-08 72 views
0

我有一个漫长而永无止境的工作,即应该始终保持运行的rake任务。 (这是在服务器端一直在等待的faye pub-sub客户端)。当应用程序部署在服务器上时,作业已创建并可正常工作,但这里的问题是旧作业不会在每个新版本中被杀死,因此当我部署第二次时,有2个作业。我经历了sidekiq api,在那里我们可以通过工作人员找到所有排队工作,但其他应用程序在同一台服务器上运行,如果我删除了所有忙碌的工作,我最终可能会影响其他应用程序。删除以前在sidekiq中构建的作业

这里是我的工人 应用程序/工人/ 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 

有任何解决方案还是我走错了方向?任何帮助将不胜感激。谢谢:)

回答

0

你会走错方向。 Sidekiq不适用于永久或不断运行的工作。从rake任务中创建适当的服务。

+0

感谢您的回复,任何想法我可以用来永久运行这些工作吗? –