Come fare in modo che l'Utilità di pianificazione ritenti un'attività quando non è riuscita con un codice di errore specifico?


4

Ho un file cmd che esegue un'applicazione (exe) che può restituire un codice di errore specifico in alcuni casi. Questo cmd viene lanciato dallo Scheduler ogni giorno.
Se fallisce con questo specifico errore, voglio essere in grado di riprogrammare e riprovare l'attività ogni 30 minuti fino a 3 volte o per le successive 2 ore prima di rinunciare al giorno successivo.

Come posso passare il codice di errore allo scheduler per riprovare automaticamente (se possibile) o come posso creare una nuova attività temporanea di failover temporanea dal cmd iniziale?

Dovrebbe funzionare principalmente su server Win2003 e Win2008 (x32 o x64).

Risposte:


1

prova ad eseguire il comando, attendi l'errore e rieseguilo. puoi usare pingper sleepfalsare un comando (o ottenere un sleep.exe dal toolkit delle risorse o hackerare il tuo o usare vbscript). comunque, basta programmare questo script ogni giorno:

@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%

sostituisci 42con il codice di uscita che ti interessa e sostituisci -w 1000con il tempo in millisecondi che desideri attendere tra ogni tentativo.


È più o meno la soluzione alternativa che avevo in mente, ma sono un po 'preoccupato di lasciarlo ping o dormire per 30 minuti invece di riprogrammare. Qualche potenziale svantaggio con il ping per un grosso periodo di tempo?
François,

non lo so. puoi anche prendere un sleep.exe da qualche parte, se questo ti fa sentire più a tuo agio.
Akira,

1

Utilizzare uno script (file batch) per chiamare la propria applicazione e testare il codice di errore, eseguirlo di nuovo in modo condizionale o uscire.

Quindi pianificare lo script anziché l'applicazione.

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.