2017-03-08 5 views
0

Ich habe eine lange und nie endende Job, d. H. Rake-Aufgabe, die die ganze Zeit laufen sollte. (Es ist faye Pub-Sub-Client wartet auf Server-Seite die ganze Zeit zu hören). Wenn Anwendung auf Server bereitgestellt wird, ist der Job erstellt und funktioniert, aber das Problem hier ist, dass alte Jobs nicht in jedem neuen Build getötet werden, so wenn ich 2. Mal bereitstellen .. gibt es 2 Jobs. und ich ging durch sidekiq api, wo wir alle Jobs in der Warteschlange stoppen können, indem wir durch worker finden, aber es gibt andere Anwendungen, die auf demselben Server laufen, und wenn ich alle beschäftigten Jobs lösche, könnte das Auswirkungen auf andere Anwendungen haben.Löschen von Jobs der vorherigen Build in sidekiq

Hier ist meine Arbeiter app/Arbeiter/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 

Hier ist mein initializers/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 

ist es irgendeine Lösungsmöglichkeit ? oder gehe ich in die falsche richtung? jede Hilfe würde sehr geschätzt werden. Danke :)

Antwort

0

Sie gehen in die falsche Richtung. Sidekiq ist nicht für Jobs konzipiert, die für immer oder dauerhaft laufen. Erstellen Sie einen richtigen Dienst aus der Rake-Aufgabe.

+0

danke für die Antwort, irgendeine Idee, was kann ich verwenden, um die Jobs für immer zu laufen? –

Verwandte Themen