Modifica per chiarire
Prima di ogni altra cosa, si dovrebbe capire che quando si esegue perform_async
, si attacca semplicemente il Lavoro in una coda Redis. Sidekiq guarda questa coda ed esegue i lavori quando entrano. Quindi, finché la tua app e il tuo Sidekiq guarderanno lo stesso server Redis (e lo stesso database, ovviamente), le cose funzioneranno.
risposta originale
primo luogo, come si può intuire, avrà bisogno di una cassa duplicato del codice in modo che possa funzionare. Nessun grosso problema.
In secondo luogo, sarà necessario accedere al database e ai server redis nell'altra casella. Ciò significa assicurarsi che quelle porte siano aperte sull'altro server. Ciò può diventare complicato, b/c idealmente non vuoi quelli esposti a Internet aperta. Di solito, per una configurazione multi-box, avrai una sola casella esposta a Internet aperta. Si comunica con il resto dei vostri carichi over IP privati:
server web pubblico
Runs Apache/Nginx e magari i server app.
privato App Server (s) (opzionale)
esegue il server di applicazioni, se non sono in esecuzione sul server pubblico. Si collega al database e al server Redis.
Sidekiq Private Server (s) (opzionale)
Runs Sidekiq. Si collega al database e al server Redis.
Private Database/Redis Server
Esegue database e Redis. Ovviamente possono dividere su server diversi se necessario.
Hai passato [questo wiki nella pagina Github di Sidekiq] (https://github.com/mperham/sidekiq/wiki/Advanced-Options)? – Kashyap
Sì, ma non ho trovato nulla relativo a ciò che sto chiedendo. Per favore correggimi se sbaglio. – Ovesh