2015-05-18 9 views
7

ho rotaie 4.2 + sidekiq sulla configurazione ubuntu e sto iniziando i miei lavori con cron ogni ora con qualcosa comeguide di scorrimento senza molla

bin/rails runner -e production 'MyJob.perform_later' 

Questo fondamentalmente prendere un posto di lavoro e mette i dati a Redis, in modo che sidekiq potrebbe prenderlo e partire da lì. Ma ogni volta che faccio questo ho questa proccesses primavera bloccati e in attesa di qualcosa (consumo di memoria)

ps aux | grep spring 
root  Sl 07:13 0:00 spring server | myapp | started 6 secs ago 
root  Ssl 07:13 0:03 spring app | myapp | started 6 secs ago | production mode 

A volte vedo come il 10 di quelli. C'è un modo per non avviare il server di primavera?

Grazie.

risposta

13

Questo accade perché si sta utilizzando la gemma spring e la cartella bin è stata "sottoposta a verifica".

Se si dà un'occhiata nel file bin/rails vedrete che spring viene caricato prima di passare con l'esecuzione di tutto ciò che avete richiesto da esso.

Si potrebbe "non-springify" la cartella bin eseguendo

bin/spring binstub --remove --all 

Questo significherebbe, naturalmente, che si opta fuori da tutta la prestazione benefici che la primavera si fornisce. Questo dovrebbe essere OK per gli ambienti di produzione. In effetti, si consiglia di non installare negli ambienti di produzione [1].

Quindi ti suggerisco di modificare il tuo Gemfile e di inserire spring sotto il gruppo development. Nella produzione si fa di solito qualcosa di simile:

bundle install --without development test 

Quella primavera modo non potrà mai rendere al server di produzione. Vedi anche this related issue su Github.

-

1. Spring project readme file

11

Se si desidera mantenere la primavera, in generale, è possibile disattivare temporaneamente molla per un singolo comando mettendo il prefisso con la variabile DISABLE_SPRING ambiente:

DISABLE_SPRING=1 bin/rails runner -e production 'MyJob.perform_later' 

Edit: grazie a Tom Lobato e tpett per la correzione .

+1

ho dovuto fare 'DISABLE_SPRING = 1' invece di' ENV = DISABLE_SPRING'. – tpett

5

E 'DISABLE_SPRING=1 invece di ENV=DISABLE_SPRING

+0

Grazie per la correzione, e scusa, mi ci è voluto tanto tempo per notarlo! – janfoeh

Problemi correlati