Daemons em segundo plano em seu aplicativo Rails com a gema daemons

Neste exemplo, mostrarei como você pode simplesmente configurar um daemon mailman com o gem daemons .

Primeiro, você precisará criar um script do mailman que receberá e processará seus e-mails:

#!/usr/bin/env ruby

require 'rubygems'
require 'bundler/setup'
require 'mailman'

require "#{File.dirname __FILE__}/../config/environment"

Mailman.config.pop3 = {} # server details go here

Mailman::Application.run do
default do
# process email
end
end

Vamos criar isso em script/mailman_server. Não se esqueça de rodar chmod +xnaquele arquivo para poder rodar o script.

Em seguida, teremos que configurar nosso daemon. Também colocamos isso script/mailman_daemon. Mais uma vez, não se esqueça de correr chmod +xnele.

#!/usr/bin/env ruby

require 'rubygems'
require 'bundler/setup'
require 'daemons'

Daemons.run 'script/mailman_server'

Agora você pode executar os seguintes comandos em seu daemon:

bundle exec script/mailman_daemon start   # to start your daemon
bundle
exec script/mailman_daemon stop # to start your daemon
bundle
exec script/mailman_daemon restart # to restart your daemon

Tudo é bastante simples.

Você também pode adicionar isso facilmente à sua configuração de implantação com o Capistrano. Para isso, aconselho você a usar o Capo que é uma ótima ferramenta para gerenciar suas receitas do Capistrano. Se você tiver configurado em seu aplicativo, poderá adicionar a receita dos daemons executando . Você só precisa definir os daemons variáveis para adicioná-lo para o carteiro em sua assim: .capo add ruby_daemonsconfig/deploy.rbset :daemons, [:mailman]

Mais informações sobre a configuração do mailman podem ser encontradas aqui . Isso também cobre a configuração básica com a gema daemons .