Având 2 programe stabilite:
- Cron rulează la fiecare 8 dimineața
0 8 * * * myCronJob.sh
- Fcron rulează la fiecare 61 de minute:
@1h1 myFcronJob.sh
În cele din urmă, se vor ciocni unul de celălalt și nu va funcționa, deoarece în acest scenariu poate rula o singură lucrare la un moment dat. Pentru a evita această problemă, am putea folosi o blocare pentru a permite doar o singură lucrare la un moment dat, cum ar fi acest cod aici
0 8 * * * user/bin/flock /usr/tmp/lfile.lockfile -c 'myCronJob.sh'
@ 1h1 user/bin/flock /usr/tmp/lfile.lockfile -c „myFcronJob.sh”
Aceasta ridică o altă problemă, dacă fcron este configurat să ruleze la fiecare 61 de minute și când pornește și va aștepta să se termine cealaltă lucrare, cronometrul va fi aliniat greșit deoarece data viitoare când rulează, va fi
(61 de minute - timpul în care a fost blocat) Este necesar ca myFcronJob.sh să ruleze după 60 de minute
Exemplu
- Lucrarea Cron începe la 8 dimineața și durează 5 minute
- Fcron este pe cale să înceapă și la ora 8:01, dar a observat că încuietoarea este la loc
- Fcron așteaptă ca treaba lui Cron să se termine
- Fcron rulează în sfârșit la 8:05
- Fcron va rula 61 de minute de la 8:01, ceea ce va duce la următoarea iterație care va începe la 9:02 în loc de 9:06 a.
Citeam pagina de manual pentru fcrontab cu speranța că există un semnal util, dar nu am putut înțelege prea multe. Ajutor apreciat