Upgrade to Pro — share decks privately, control downloads, hide ads and more …

Monitoramento de Tarefas Assíncronas

Monitoramento de Tarefas Assíncronas

Palestra sobre Monitoramento de Tarefas Assíncronas (como cron tasks) realizada no encontro do grupo FoR (Frevo On Rails) de Recife - PE

Airton Sampaio

July 26, 2014
Tweet

More Decks by Airton Sampaio

Other Decks in Programming

Transcript

  1. Log Everything! 1.  Log separado por tarefa 2.  Log contendo

    STDOUT e STDERR (No caso de comandos ou scripts bash) 3.  Rotacionar os logs
  2. Cron * * * * * /path/to/script.sh Dia da semana

    (0-6) (Dom = 0) Mês (1-12) Dia do mês (1-31) Hora (0-23) Minuto (0-59)
  3. set :job_template, "#{job_template} && curl :url"! ! every 1.day, :at

    => ['0:00am'] do! rake “my:task", :url => ”dms5.com/3231412"! end! schedule.rb Placeholder Replacement
  4. 0 0 * * * /bin/bash -l -c 'cd /path/to

    && RAILS_ENV=production bundle exec rake my:task --silent' && Crontab curl dms5.com/3231412
  5. Dead Man’s Snitch 1.  URL por Tarefa 2.  Log to

    Hell (your_command &> /dev/null) 3.  Pago ($19/100 tasks/mês)
  6. Amazon EC2 micro $ sudo wget -O /etc/yum.repos.d/jenkins.repo http://../jenkins.repo $

    sudo rpm --import http://..jenkins-ci.org.key $ sudo yum install jenkins $ sudo service jenkins start
  7. set :jenkins_home, "http://jenkins-instance- url:8080"! ! set :job_template, ”JENKINS_HOME=#{jenkins_home}! /bin/jenkins_core.jar ‘:id’

    #{job_template}"! ! every 1.day, :at => ['0:00am'] do! rake “my:task", :id => ”MyTask"! end! schedule.rb Placeholder Replacement
  8. 0 0 * * * /bin/bash -l -c JENKINS_HOME=http://jenkins-instance..:8080 /bin/jenkins_core.jar

    “MyTask” 'cd /path/to && RAILS_ENV=production bundle exec rake my:task –silent’ Crontab
  9. Octavarium::Whenever.init(self, ! { :server_url => "http://oct3.com",! :group_name => "Ads" })!

    ! every 1.day, :at => ['0:00am'] do! rake “my:task”! end! schedule.rb
  10. Roadmap 1.  Configurações de notificação avançadas por tarefa 2.  Sistema

    de Autenticação 3.  Tutoriais e documentação completa