bearbeiten
Vor alles anderen zu klären, sollten Sie verstehen, dass, wenn Sie perform_async
laufen, es ist einfach die Jobs in eine Warteschlange Redis klebt. Sidekiq überwacht diese Warteschlange und führt Jobs aus, wenn sie eintreffen. Solange Ihre App und Ihr Sidekiq auf denselben Redis-Server (und natürlich dieselbe Datenbank) zugreifen, werden die Dinge funktionieren.
Ursprüngliche Antwort
Zuerst wird, wie Sie wahrscheinlich erraten kann, wird es ein Duplikat der Kasse des Codes benötigen, damit sie ausgeführt werden können. Keine große Sache.
Zweitens benötigt es Zugriff auf Ihre Datenbank und Redis-Server auf der anderen Box. Das bedeutet, dass diese Ports auf dem anderen Server offen sind. Das kann knifflig werden, b/c möchten Sie idealerweise nicht diejenigen, die dem offenen Internet ausgesetzt sind. Bei einem Multi-Box-Setup ist normalerweise nur eine Box für das offene Internet verfügbar. Er kommuniziert mit dem Rest Ihrer Frachten über privaten IPs:
öffentlichen Web-Server
Apache/Nginx Runs und vielleicht Ihre App-Servern.
Privat App Server (n) (optional)
Laufen Ihren App-Server, wenn sie auf dem öffentlichen Server nicht ausgeführt werden. Stellt eine Verbindung zu Ihrer Datenbank und Ihrem Redis-Server her.
Privat Sidekiq Server (n) (optional)
Läuft Sidekiq. Stellt eine Verbindung zu Ihrer Datenbank und Ihrem Redis-Server her.
Private Database/Redis Server
Läuft Datenbank und Redis. Natürlich können sie bei Bedarf auf verschiedene Server aufgeteilt werden.
Bist du durch [dieses Wiki auf Sidekiqs Github-Seite] gegangen (https://github.com/mperham/sidekiq/wiki/Advanced-Options)? – Kashyap
Ja, aber ich konnte nichts finden, was damit zusammenhängt. Bitte korrigieren Sie mich, falls ich falsch liege. – Ovesh