Como fazer o Scheduler tentar novamente uma tarefa quando ela falhou com um código de erro específico?

4

Eu tenho um arquivo cmd que executa um aplicativo (exe) que pode retornar um código de erro específico em alguns casos. Este cmd é iniciado pelo Agendador todos os dias.
Se falhou com este erro específico, quero poder reprogramar e repetir a tarefa a cada 30mn até 3 vezes ou nas próximas 2 horas antes de desistir até ao dia seguinte.

Como posso passar o código de erro ao agendador para que ele tente novamente automaticamente (se possível) ou como posso criar uma nova tarefa agendada de failover temporário a partir do cmd inicial?

Ele deve ser executado principalmente em servidores Win2003 e Win2008 (x32 ou x64).

    
por François 26.06.2010 / 03:27

2 respostas

1

apenas tente executar o seu comando, aguarde a falha e execute-o novamente. você pode usar ping para falsificar um comando sleep (ou obter um sleep.exe do toolkit de recursos ou hackear o seu próprio ou usar vbscript). de qualquer forma, basta agendar esse script diariamente:

@echo first try here
@if not errorlevel 42 goto end
@ping 127.0.0.1 -w 1000 > NUL

@echo second try here
@if not errorlevel 42 goto end
@ping 127.0.0.1 -w 2000 > NUL

@echo third try here
@if not errorlevel 42 goto end
@ping 127.0.0.1 -w 3000 > NUL

@echo will try again tomorrow

:end
@echo finish %errorlevel%

substitua 42 pelo código de saída do seu interesse e substitua -w 1000 pelo tempo em milissegundos que você deseja aguardar entre cada nova tentativa.

    
por 26.06.2010 / 07:43
1

Use um script (arquivo em lotes) para chamar seu aplicativo e testar o código de erro e re-executá-lo condicionalmente ou sair.

Em seguida, agende o script em vez do aplicativo.

    
por 26.06.2010 / 04:09