2017-03-08 70 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

感謝您的回覆,任何想法我可以用來永久運行這些工作嗎? –