2016-12-28 1 views

Antwort

2

können Sie überprüfen sidekiq und redis-Server läuft oder nicht läuft durch:

def redis_connected? 
    !!Sidekiq.redis(&:info) rescue false 
    end 

    def sidekiq_connected? 
    ps = Sidekiq::ProcessSet.new 
    ps.size > 0 ? true : false 
    end 

und Sie können auch von Ihrem Controller starten, aber dies ist kein guter Weg, weil es sidekiq startet aber Schienen Server töten.

def start_sidekiq 
    system "redis-server &" if !redis_connected? 
    system "bundle exec sidekiq -d" if !sidekiq_connected? 
    flash[:sidekiq_notification]="Starting server... Please refresh after few seconds" 
    redirect_to :back 
    end 

oder installieren und ein Server-Monitoring-Tool verwendet

+0

Danke für Ihre Antwort nitisha es löst mein halbes Problem von sidekiq von meinem Controller zu laufen, aber es ein großes Problem, das meine Rails-Anwendung tötet :( –

+0

installieren und verwenden Sie ein Server-Monitoring-Tool – Nitisha

+0

Erstaunlich .... Yaa das funktioniert ... Vielen Dank @Nitisha –

1

Es sollte nicht Ihre Aufgabe sein, externe Programme zu starten.

Installieren und verwenden Sie ein Serverüberwachungsprogramm wie bluepill oder god, um sicherzustellen, dass alle Abhängigkeiten aktiv sind.

+0

Vielen Dank für Vorschlag, aber wenn ich brauche, um zu verwalten Wie kann ich mit meiner Bewerbung umgehen? irgendeine Idee ?? –

1

Ich glaube, dass dies ein falscher Weg, es zu tun ist.

Ich empfehle Ihnen, ein Monitorringsystem einzurichten, das automatisch Ihre fehlerhaften Arbeiter startet - Sie können God, Monit oder was auch immer Sie möchten verwenden.

Wenn Sie jedoch wirklich es brauchen, Sie Systemaufrufe von Ruby durchführen kann - wickeln Sie es nur in `` oder %x{} (zB %x{ bundle exec sidekiq })

Verwandte Themen