Wie kann ich feststellen, ob mein Code "in" Sidekiq Server oder Puma läuft?

8

Ich verwende Puma als Webserver und Sidekiq als meinen Warteschlangenmanager.

Für mehrere Dinge (Datenbankverbindungen, Redis-Verbindungen, andere externe Dienste) verwende ich das ConnectionPool-Juwel, um den sicheren Zugriff auf Verbindungen zu verwalten.

Nun, abhängig davon, ob ich im Kontext von Sidekiq oder von Puma laufe, brauche ich diese Pools in verschiedenen Größen (so groß wie die Anzahl der Sidekiq-Threads bzw. Puma-Threads, und sie sind unterschiedlich)

Was ist der beste Weg, in Ihren Initialisierern zu wissen, wie groß Ihre Verbindungspools basierend auf dem Ausführungskontext sind?

Danke!

    
Daniel Magliola 06.02.2015, 13:40
quelle

2 Antworten

35

Sie verwenden Sidekiq.server? , das nil zurückgibt, wenn es nicht ausgeführt wird innerhalb des Sidekiq Prozesses selbst.

    
Mike Perham 06.02.2015, 16:39
quelle
1

Ich weiß nichts über Ihren speziellen Fall ( puma / sidekiq ), aber im Allgemeinen finden Sie diese Informationen in der Variable $PROGRAM_NAME . Ähnlich sind auch __FILE__ und %code% .

    
stoodfarback 06.02.2015 13:52
quelle