Fake-cron elméletben

Mit tehetünk, ha tárhelyünkön nem kapunk cron beállítási lehetőséget, viszont szükségünk van automatizált script futtatásra? Rövid cikk következik...

Amennyiben nincs lehetőségünk semmilyen szinten cron jobokat beállítani a tárhelyünkön, úgy megpróbálhatunk egy viszonylag fapados módszert használni.

A módszer lényege, hogy oldalletöltésenként megvizsgáljuk, hogy ideje-e már futtatni a kívánt scriptet. Természetesen több scriptet is futtathatunk adott időközönként, vagy adott időpontokban.
Szükségünk lesz egy fájlra vagy sql táblára ami a futtatandó scripteket és az időpontokat/időközöket tartalmazza.
A scripteket érdemes egy külön mappában tárolni, hasonlóan mintha valós cron jobokat indítanánk.

A folyamat lépésekben:

  1. Az index fájl legelején indítjuk a fake-cron függvényünket.
  2. Lekérdezzük időpont alapján, hogy van-e futtatandó script.
  3. Amennyiben van futtatandó script, úgy azt cUrl hívással érdemes meghívni, mert így a job futásideje nem lesz kihatással az oldalletöltésre.
  4. Futtatás után számoljuk ki a script következő futásának időpontját és állítsuk is be azt.

Röviden, ebből a 4 lépésből áll a fake-cronunk működése. Azonban van pár dolog amire figyelnünk kell:

  • Mivel oldal letöltésenként lefut a fake-cron függvényünk, külön figyelnünk kell arra, hogy nehogy egyszerre többször indítsuk el ugyanazt a scriptet. Ezért amint lehet a futtatandó jobnál jelezzük egy flaggel, hogy az már el van indítva (stop jelzés), illetve a job következő indítási időpont beállításakor ezt a jelző flaget állítsuk vissza futtathatóra (start jelzés).
  • Szintén az oldal letöltésenként történő futtatás miatt előfordulhat kis látogatottságnál, hogy nincs oldalletöltés a kérdéses időpontban. Ezért körültekintően tervezzük meg a jobokat, mert lehet, hogy nem pont az elvárt időpontban fognak lefutni.
Buy and Trade Bitcoin at Binance