Pergunta

Estou usando o atrasado_job (tentei tanto o tobi quanto o coletivo_idea) na hospedagem compartilhada site5.com, com passageiro como ambiente rails.Consegui fazer os trabalhos.No entanto, parece que o plug-in ignora quaisquer alterações no código-fonte da classe de trabalho após a primeira execução.Eu reiniciei o servidor a cada alteração (touch tmp/restart.txt), mas ainda o ignora.

Exemplo:

arquivo: lib/xx_job.rb

class XxJob
  def perform
    Rails.logger.info "XX START"

    TempTest.delete_all

    i = 0
    10.times {
      i+=1
      TempTest.create(:name => "XXX")
      sleep(1)
    }

    Rails.logger.info "XX END"
  end
end

Em um controlador simples eu chamo:

Delayed::Job.enqueue(XxJob.new)

Conclusões que reuni:

  1. Se eu mudar xx_job.rb para xx_job1.rb - erro no controlador
  2. Se eu mudar a classe XxJob para classe XxJob1 - erro no controlador
  3. Se eu excluir todo o conteúdo do método perform - o código antigo, o código antigo será executado
  4. Novo arquivo .rb com classe e performance, enfileire esta classe - funciona perfeitamente
  5. Se eu mudar alguma coisa no trabalho de execução e execução do novo arquivo novamente - o código antigo será executado

Entre cada alteração eu reiniciei o servidor.Parece que o Passenger ou outra coisa salva o cache da classe.

Como posso excluir esse cache?Está armazenado em algum lugar no servidor?(Espero ter acesso a ele na hospedagem compartilhada)

Obrigado!

Foi útil?

Solução 2

Eventualmente, eu descobri isso - vários trabalhadores estavam em segundo plano, cada um deles pegou um emprego e tinha seu próprio cache. Eu não sabia como matá -los, então mudei o nome da mesa por vários segundos. Isso os matou :)

Então eu usei https://github.com/tobi/delayed_job/wiki/running-delayed::worker-as-a-daemon Quando o trabalhador começa, e funciona muito bem.

Outras dicas

Se você executar trabalhos de trabalho atrasados ​​daemonizados, será necessário reiniciá-los para recarregar o código.Além disso, lembre-se de que cada trabalhador carrega sua própria instância de Rails.

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