Pergunta

Eu estou querendo saber, é que não existe maneira de implementar o plano de fundo taks, talvez com os trabalhadores da piscina.Você pode me mostrar a direção, eu estou pensando sobre o pacote de gravação para isso?

Foi útil?

Solução

2019 atualização

Antes de pensar em escrever um pacote de qualquer coisa, primeiro veja se há pacotes existentes que fazer o que você precisa.No Meteoro mundo, isto significa observar na Atmosfera para "emprego/fila/tarefa/trabalho/gestão de agendamento de pacotes e, em seguida, em npm para os mesmos termos de pesquisa.Você também precisa definir as suas necessidades mais precisamente:

  • você quer persistência, ou seria uma solução de memória de trabalho?
  • você quer ser capaz de distribuir trabalhos para máquinas diferentes?

Meteoro-específicas

  • trabalho de coleta de - confiável (eu usei ele em 2014 na produção em uma partida), mas atualmente em modo de manutenção.Permite que você agende persistente postos de trabalho para ser executado em qualquer lugar (servidores, clientes).
  • SteveJobs - ativamente mantidas por Max Savin, autor de vários poderoso Meteoro de ferramentas
  • littledata:sincronizados-cron - "Uma simples cron do sistema de Meteoro.Ele oferece suporte a sincronização de tarefas entre vários processos."

Abandonado dos pacotes:

Npm pacotes

Meteoro foi capaz de usar a ngp pacotes diretamente por vários anos agora, então, esta pergunta equivale a encontrar emprego/trabalho/gestão de filas de pacotes no NGP.Se você não gosta de persistência:

  • Assíncrono "fornece cerca de 70 funções que incluem o habitual 'funcional' suspeitos (map, reduce, filter, each... ), bem como alguns padrões comuns para assíncronas de controle de fluxo (parallel, series, waterfall...)"
  • d3-fila de - minimalista, escrito por D3 autor Mike Bostock

Se você deseja persistência, desde Meteoro usa o MongoDB já, pode ser vantajoso usar um agendamento de trabalho de pacote com persistência para o MongoDb.O mais poderoso e popular parece ser Agenda, mas, infelizmente, não tem sido mantida em meses, e ele tem uma significativa lista de pendências de questões.

Se você estiver disposto a adicionar uma dependência apoiado por redis para o seu projeto, há mais opções:

Como o MongoDB, Redis também pode fornecer alta disponibilidade (via Redis Sentinela), e se você quiser distribuir tarefas entre vários computadores de trabalho, você pode ponto-los todos ao mesmo Redis servidor.

Outras dicas

Há um pacote baseado no Cron jobs que pode ser usado para agendar tarefas em determinados intervalos ou datas.Aqui está o pacote: https://atmosphere.meteor.com/package/cron

E se acontecer de você olhar para a origem do pacote, você vai notar que eles estão simplesmente usando:

Meteor.setInterval( ... , delay );

Então, se você guardar suas tarefas em um banco de dados e, em seguida, carregá-los em intervalos durante a inicialização, então você provavelmente vai estar no caminho certo.

Se você estiver procurando por algo que é específico para meteoro, estou feliz em compartilhar que há um novo pacote chamado Steve Jobs.Faz correr trabalhos de fundo tão fácil quanto chamar um método.

Tem todos os recursos padrão que você esperaria, como a execução de um trabalho apenas uma vez, repetindo os trabalhos com falha e assim por diante.Você pode aprender mais sobre isso no GitHub:

http://github.com/msavin/stevejobs

Eu estou supondo que o apoio adequado é em seu roteiro, mas enquanto isso consegui ir de uma maneira hacky via setInterval.Veja o Pacote de cron-tick

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