Pergunta

Estou executando um aplicativo que inicia um processo do Rufus Scheduler em um inicializador.O aplicativo está sendo executado com o Passenger em produção e notei alguns comportamentos estranhos:

Primeiro, para reiniciar o servidor e garantir que o inicializador seja executado, você deve ambos touch tmp/restart.txt e carregue o aplicativo em um navegador.Nesse ponto, o inicializador é acionado.O horrível é que se você apenas tocar, os processos agendados pelo Rufus são reiniciados e não são reprogramados até que você carregue o aplicativo em um navegador.

Só isso eu posso lidar.Mas isso leva ao segundo problema:Percebo que o processo agendado não foi executado, então carrego uma página e de repente o arquivo de log está me informando que está executando os inicializadores como se eu tivesse reiniciado.Então, em algum momento, o Passenger está reiniciando aleatoriamente como se eu tivesse tocado em tmp/restart.txt e apagando meus processos agendados.

Eu tenho um entendimento incrivelmente ruim da integração do Passenger e do Rails, então não sei se essa reinicialização ocasional é aberrante ou faz parte da arquitetura.Alguém pode oferecer alguma sabedoria sobre esta situação?

Foi útil?

Solução

O que você descreve é ​​a maneira como o Passenger funciona.Ele gera novas instâncias do aplicativo quando o tráfego as justifica e as desliga após períodos de inatividade para liberar recursos.

Você deve ler a documentação do Passageiro, especialmente o Seção de controle e otimização de recursos.Existem configurações que podem evitar que o aplicativo seja encerrado pelo Passenger, se assim desejar.

Usando a configuração PassengerPoolIdleTime, você pode manter pelo menos um processo em execução, mas é quase certo que desejará que o Passenger inicie outras instâncias do aplicativo conforme necessário. Este tópico no Rufus Scheduler Google Group menciona o uso de arquivos de bloqueio para evitar que mais de um processo inicie o agendador, o que pode ser útil para você.

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top