touched_job não pegando o ambiente do Rails
-
21-09-2019 - |
Pergunta
Seguiu esta pergunta sobre touched_job e monit
Está funcionando na minha máquina de desenvolvimento. Mas sempre que tento executar a produção, ele morre com o seguinte no atraso_job.log
*** Starting job worker delayed_job host:mail.welcometonewnepal.com pid:356
#<Mysql::Error: Access denied for user 'root'@'localhost' (using password: YES)>
*** Starting job worker delayed_job host:mail.welcometonewnepal.com pid:441
#<Mysql::Error: Access denied for user 'root'@'localhost' (using password: YES)>
*** Starting job worker delayed_job host:mail.welcometonewnepal.com pid:448
#<Mysql::Error: Access denied for user 'root'@'localhost' (using password: YES)>
E eu vou correr na produção Env
ruby script/delayed_job start -e production
Ainda assim, erra. Estou percebendo que isso se deve ao ambiente não definido para que ele tente captar o ambiente de desenvolvimento.
/opt/ruby-enterprise-1.8.6-20090610/lib/ruby/gems/1.8/gems/rails-2.3.2/lib/initializer.rb:365:in `read': No such file or directory - /home/millisami/rails_apps/wnn_finale/config/environments/-e.rb (Errno::ENOENT)
Por que o parâmetro do ambiente não está definido corretamente?
Solução
Eu posso estar desgastado aqui, mas você está usando esta essência como script/touched_job? Nesse caso, não precisa do "-e" - simply calling script/delayed_job start production
ou chanando a linha que começa com ENV['RAILS_ENV']
(Substituir "Desenvolvimento" por "Produção") deve ser suficiente.
Se você ainda receber erros do MySQL posteriormente, verifique seu nome de usuário e senha.
Outras dicas
Apenas use
ruby RAILS_ENV=production script/delayed_job start
Apenas para ajudar as pessoas a encontrar essa pergunta e as respostas antigas: o script não aceita mais o parâmetro do ambiente: https://github.com/collectiveidea/delayed_job/issues/7
Tentar script/delayed_job start -- production
. Eu não acho que você passa o meio ambiente para o DJ da mesma maneira que faria script/server
. Esta resposta é específica para o delayed_job
Arquivo que usamos, estou procurando uma essência dele.
Editar: aqui está o essência do arquivo que usamos.