Autor | Zpráva | ||
---|---|---|---|
ja99 Profil * |
#1 · Zasláno: 1. 8. 2013, 10:20:03
Ahoj, mam nastaveny tento cronjob:
*/59 * * * * root php -q /var/scipt/cron_test.php Kazdych 59 minut se spusti skript ktery zapise do logu cas a datum spusteni: 01-08-2013 00:00:01 01-08-2013 00:59:01 01-08-2013 01:00:01 01-08-2013 01:59:01 01-08-2013 02:00:01 01-08-2013 02:59:01 01-08-2013 03:00:01 01-08-2013 03:59:01 01-08-2013 04:00:02 01-08-2013 04:59:01 01-08-2013 05:00:01 01-08-2013 05:59:01 01-08-2013 06:00:01 01-08-2013 06:59:01 01-08-2013 07:00:01 01-08-2013 07:59:01 01-08-2013 08:00:01 01-08-2013 08:59:01 01-08-2013 09:00:02 Z logu vidite ze se cron spusti spatne napr. 01-08-2013 00:59:01 (OK) ale pak hned 01-08-2013 01:00:01 kdy uz by se nemel spustit protoze se ma spoustet pouze kazdych 59 minut. Kde je chyba? Diky |
||
Joker Profil |
#2 · Zasláno: 1. 8. 2013, 10:58:45
ja99:
Protože to */59 se nepřetočí do další hodiny. Ono to vlastně neznamená „59 minut od předchozího běhu“, ale spíš „v kterékoliv minutě dané hodiny a pak v každé, která bude o 59 víc než předchozí běh.“ Což právě dá výsledek každou hodinu v .00 a .59. Jak udělat CRON spouštěný každých 59 minut upřímně řečeno nevím. |
||
ja99 Profil * |
#3 · Zasláno: 1. 8. 2013, 11:05:14
Joker:
Fajn, díky za info. V tomto případě by se asi musela dát celá hodina 0 */1 * * * |
||
Joker Profil |
#4 · Zasláno: 1. 8. 2013, 11:23:45
ja99:
To mi přijde jako nejjednodušší řešení, dát to na celou hodinu. Jinak podobné CRONy jsem viděl rozdělené na víc úloh, např. CRON každých 45 minut udělaný jako první CRON 0,45 0,3,6,9,12,15,18,21 * * * (tj. se spustí v 0.00, 0.45, 3.00, 3.45, atd.) druhý CRON s 30 1,4,7,10,13,16,19,22 * * * (spustí se ve vyjmenované hodiny v .30) a třetí CRON s 15 2,5,8,11,14,17,20,23 (ve vyjmenované hodiny v .15) - a ta kombinace dohromady spustí úlohu každých 45 minut.
Ale spouštění každých 59 minut tímhle způsobem udělat nejde, resp. by to prakticky byla jedna úloha pro každé jedno spuštění. |
||
Časová prodleva: 12 let
|
0