Cron vs. načasovaná úloha

petersveter

Cron vs. načasovaná úloha
« kdy: 11. 05. 2024, 16:42:27 »
Rozmyslam nad tym, kedy je vhodnejsie pouzit cron a kedy vytvorit ulohu na spracovanie...

Napriklad mozem mat clanok ktory chcem publikovat v buducnosti, v konkretny datum a cas. Mozem tak vytvorit ulohu a nastavit jej kedy sa ma spustit a procesor, ktory bezi konstantne a instantne spracuva ulohy ktore ma k dispozicii, ju nasledne spusti a clanok sa publikuje.

Na druhu stranu mozem mat cron ulohu, ktora periodicky nejak najde vsetky clanky ktore uz mali byt publikovane, ale este nie su, a nasledne ich publikuje.

Takze dosiahnem rovnaky vysledok ale odlisnym sposobom.

Ulohu mozem zrusit alebo zmenit datum exekucie. Ale zase to mozem, v tomto pripade, urobit aj zmenou datumu buducej publikacie clanku, takze znovu mam rovnaky vysledok.

Cron bezi periodicky, kdezto v pripade konkretnej ulohy mozem vytvorit viacero instancii s odlisnymi parametrami, kde mozno globlana akcia cronu by nestacila... ale skratka nie som si uplne isty kedy je ktora metoda vhodna.

Zatial som dospel len k tomu ze uloha je vhodnejsia vtedy ak je akterom clovek a nieco sa ma vykonat v buducnosti, pripadne akcia vyzaduje dlhsi cas na beh takze sa spusti ako samostatny proces. Cron zase ak clovek nie je pritomny, i tam to tiez nie je uplne ciernobiele.

Mate nejake tipy ako sa rozhodovat pre ktoru metodu?


petersveter

Re:Cron vs. načasovaná úloha
« Odpověď #1 kdy: 11. 05. 2024, 17:14:42 »
PS: pod "ulohou" mam na mysli nejaky kus dynamickej konfiguracie(entita/objekt). Pri crone hovorim o volani nejakej konkretnej funkcie v nakonfigurovanej periode.

RDa

  • *****
  • 2 709
    • Zobrazit profil
    • E-mail
Re:Cron vs. načasovaná úloha
« Odpověď #2 kdy: 11. 05. 2024, 19:26:01 »
Ten priklad neni uplne dobry - porad je to ukol pro cron, protoze ti jde o periodickou kontrolu cms, aby zverejnovala prispevky urcene k publikaci (btw v praxi na to nepotrebujes uplne cron, protoze to muze vyresit cms v ramci runtime nebo admin rozhrani, kdy proste jeden request bude obetovan na tohle a jeho vykonani bude vypadat pomalejsi jako jine requesty).

Co se opakuje = cron

Co se neopakuje = at
(napr. reboot ci shutdown, v planovanou dobu - treba za hodinu dve, pote co pujdes spat ale jeste se ti neco stahuje)

Zopper

  • *****
  • 780
    • Zobrazit profil
Re:Cron vs. načasovaná úloha
« Odpověď #3 kdy: 11. 05. 2024, 21:08:58 »
To plánované zveřejnění bez system-side cronu se dělá blbě. Respektive všude, kde jsem to v nějakém CMS viděl, musí být dostatečný provoz na to, aby se to +- v plánovanou dobu stalo. Blog s 5 návštěvníky za den to jinak místo o půlnoci zveřejní až další den ve dvě odpoledne, když na to někdo poprvé od té půlnoci vleze. A se system-wide cronem (nebo u standalone serverů - java, python, ne jen nějaké php cms které musí použít system cron) ty načasované úlohy většinou jdou do fronty, odkud je periodicky vybírá něco pouštěného cronem.
« Poslední změna: 11. 05. 2024, 21:13:15 od Zopper »

petersveter

Re:Cron vs. načasovaná úloha
« Odpověď #4 kdy: 12. 05. 2024, 20:31:11 »
Ten priklad neni uplne dobry

...je to len priklad  ::) na sirsie objasnenie otazky.
« Poslední změna: 12. 05. 2024, 20:34:11 od petersveter »


Bugsa

  • ***
  • 128
    • Zobrazit profil
    • E-mail
Re:Cron vs. načasovaná úloha
« Odpověď #5 kdy: 13. 05. 2024, 08:26:40 »
Podle mě nemá cenu vymýšlet nic nového a použít cron nebo systemd .timer unitu která ten procesor zavolá v nějaký čas aby zkontroloval zda není něco k publikaci a následně to provedl.