Qual é a melhor maneira de executar tarefas assíncronas em uma aplicação Rails?

StackOverflow https://stackoverflow.com/questions/124360

  •  02-07-2019
  •  | 
  •  

Pergunta

Eu sei que existem vários plugins que fazem o processamento assíncrono. Qual é o melhor e por quê?

O que eu sei sobre são:

Foi útil?

Solução

Starling e Workling parecer bastante interessante (veja a screencast ) se você pode ter vários tal processo, e você quer fila-los.

Você pode também estar interessado pela screencast anterior que ancinho uso para o fundo processo, e pelo futuro que será, provavelmente, sobre uma outra solução para a mesma pergunta.

Outras dicas

Vou acrescentar DJ (Jó atrasada) à lista - http : //blog.leetsoft.com/2008/2/17/delayed-job-dj

Os caras github recentemente deu uma grande revisão: http://github.com/ blog / 197-the-new-fila

Se algo é a solução 'melhor' realmente depende de qual é o problema que você está tentando resolver. Em alguns casos, a melhor solução será a solução mais leve, na outra o mais pesado.

BackgroundRb é provavelmente o processador de trabalho em segundo plano Rails mais plenamente-featured, mas é também o mais complicado por isso vai exigir mais investimentos para se familiarizar com ele. BackgroundRb provavelmente pode lidar com a maioria dos casos de uso, a partir do simples para o complexo.

Já ouvi coisas muito boas sobre Job fundo do Ara T. Howard (Bj) que, para citar o README é a morte cerebral simples de zero fundo administrador prioridade fila para Rails . Esta é uma solução muito mais leve e pode ser preferível BackgroundRb para a maioria dos cenários, como resultado.

Se tudo que você quer é uma solução para desligada infrequente lote de estilo processando então script/runner que vem com todas as aplicações Rails seria mais que suficiente.

Para ler mais você pode querer olhar para HowToRunBackgroundJobsInRails do Rails Wiki .

Resque pode ajudá-lo também.

É uma ferramenta muito agradável para a criação de postos de trabalho de fundo, colocando esses trabalhos em várias filas, e processá-los mais tarde.

caras do Github ter criado e usá-lo.

O artigo abaixo podem ajudar você a começar:

http://rubylearning.com/blog/2010 / 11/08 / fazer-você-sabe-resque /

Starling + Workling plugin é simples morto. Além disso, ele usa Memcached que é simples, testado e escalável.

BackgrounDRb - Prós: Cheio de recursos, mensagens, Contras: de rosca (EEK - Rails não é thread seguro!), complexo

Daemon Gerador - Prós: Simples, executa trabalhos e pronto !, Contras :. Nenhum de que o material de mensagens fantasia

Nós usamos Cron. Fácil de configurar, fácil de manter, e sempre funciona.

BackgroundRb vai comer seu cérebro.

BackgrounDRb não foi enfiada, seu completamente processar baseado. Ele só tem um recurso de pools de threads que o usuário pode usar, se ele quer lidar com IO vinculado tarefas ao mesmo tempo.

Tente 1.1 liberação e deixe-me (no meu blog) ou na lista de discussão sobre quaisquer questões.

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