Touched_job - no site5 servidor
-
24-09-2019 - |
Pergunta
Atualmente estou usando um servidor do site5 e gostariarake jobs:work
praticamente correndo o tempo todo. Atualmente, não posso enviar os trabalhos, a menos que eu esteja conectado ao servidor. Espero que alguém lá fora possa me ajudar com isso. Tinha muitos problemas com ar_mailer
e a whenever
Gem ... mas tenha cerca de 5 jóias funcionando perfeitamente no meu aplicativo Rails.
Alguém pode lançar alguma luz sobre uma solução para isso, por favor? muito apreciado. (Instalado touched_job como um plugin)
Solução 2
Ok, eu tenho uma solução alternativa para isso, é o melhor que posso fazer, mas funciona até certo ponto ... Eu fiz uso de empregos de Cron e um Arquivo de script/jobrunner personalizado.
Eu criei o Jobrunner script localizado em script/jobrunner
que contém o seguinte
#!/usr/bin/env ruby
require File.dirname(__FILE__) + '/../config/environment'
Delayed::Worker.new.start
Então, em um trabalho de Cron, eu o fiz esse arquivo.
No relatório do Cron, ainda recebo alguns erros, mas os empregos funcionam e estou feliz com isso!
O trabalho do Cron está sendo executado a cada hora no 50º minuto, por exemplo, e passa por todos os touched_jobs na tabela e os processa. Esta é a próxima melhor solução alternativa que encontrei no meu problema. Espero que isso ajude alguém no futuro.
Vou ver quais outros scripts eu posso evocar para tarefas diárias/semanais.
Outras dicas
Se você estiver usando o Capistrano, inicie o atraso_job quando o aplicativo for implantado. Adicione isso ao seu arquivo de receita de implantação.
require 'delayed/recipes'
after "deploy:stop", "delayed_job:stop"
after "deploy:start", "delayed_job:start"
after "deploy:update_code", "delayed_job:stop"
after "deploy:restart", "delayed_job:start"
O trabalho atrasado vem com um script para começar em segundo plano e log para log/touched_job.log. Você pode iniciar um DAUSEMENIZADO DEELHED_JOB em execução no modo de desenvolvimento assim:
RAILS_ENV=development script/delayed_job start