Agendador de tarefas, mantenha um certo número de tarefas em execução

2

Tenho tarefas de extração da Web demoradas que eu quero executar, mas em vez de apenas executá-las uma após a outra que eu quero executar, ou seja, 6 por vez para acelerar o tempo total da tarefa. O que eu quero atingir idealmente é criar as 400 tarefas, selecionar que eu quero que 6 seja executado simultaneamente em todos os tempos e, em seguida, o software do agendador irá certificar-se de que 6 estão sempre em execução, quando um termina o próximo na lista é iniciado . Isso é possível?

Se a solução ideal acima não estiver disponível, eu estava pensando em criar 6 listas de tarefas separadas, cada uma com 1/6 da lista total. Então, as tarefas podem ser iniciadas todas ao mesmo tempo e cada tarefa separada lista irá iniciar o próximo na lista quando o anterior terminar.

Alguma idéia?

    
por Stephen 23.04.2012 / 00:15

1 resposta

4

No Linux , isso pode ser feito com xargs:

cat cmds | xargs -n 1 -P 6 -0 bash -c

em que cmds é uma lista de comandos para executar usando o bash

No Windows , sugiro que você tente resolver isso com o PowerShell. Existem vários perguntas sobre este tópico no overflow de pilha

    
por 23.04.2012 / 01:12