Azure-függvény futtatása ütemezés szerint
Gyakran előfordul, hogy egyfajta logikát egy adott időben szeretnénk végrehajtani. Tegyük fel, hogy Ön blogtulajdonos, és megfigyelheti, hogy az előfizetői nem olvassák a legutóbbi bejegyzéseit. Úgy dönt, hogy hetente egyszer egy emlékeztető e-mailt küld az olvasóknak. Ezt a logikát úgy valósíthatja meg, hogy létrehoz egy függvényalkalmazást az Azure-ban egy időzítő eseményindítóval a függvény heti meghívásához.
Mi az időzítő eseményindító?
Az időzítő eseményindító olyan eseményindító, amely ismétlődő időközönként hajt végre egy függvényt. Időzítő eseményindító létrehozásához kétféle adatra lesz szüksége.
- Az időbélyegző paraméter neve, amely az időzítőnek a kódban szereplő azonosítója.
- Egy ütemezés, amely egy CRON-kifejezés, és megszabja az időzítő időközeit.
Mi az a CRON-kifejezés?
A CRON-kifejezés egy olyan sztring, amely hat mezőből áll, amelyek megadott időket képviselnek.
A hat mező sorrendje az Azure-ban a következő: {second} {minute} {hour} {day} {month} {day of the week}
.
Például egy CRON-kifejezés, amely ötpercenként végrehajtó eseményindítót hoz létre, a következőképpen néz ki: 0 */5 * * * *
Elsőre ez a sztring zavarónak tűnhet. A CRON-kifejezések mélyebb megismerése után visszatérünk ezekhez a fogalmakhoz, és részletesebben is megvizsgáljuk őket.
CRON-kifejezés létrehozásához meg kell értenie az egyes speciális karaktereket.
Speciális karakter | Meaning | Példa |
---|---|---|
* | Kijelöli egy mező összes értékét | A hét napja mezőben található csillag „*” azt jelenti, hogy minden nap. |
, | Elválasztja a lista elemeit | A hét napja mezőben található vessző (például „1,3”) azt jelenti, hogy hétfő (1. nap) és szerda (3. nap). |
- | Megad egy tartományt | Az óra mezőben található kötőjel (például „10-12”) az 10 és 12 óra közötti időtartományt jelenti (a kezdő és befejező értékkel együtt). |
/ | Növekedést szab meg | A percek mezőben található perjel (például „*/10”) 10 percenkénti növekedést szab meg. |
Térjünk vissza az eredeti CRON-kifejezésünkhöz. Bontsuk le mezőnként, hogy jobban megértsük.
0 */5 * * * *
Az első mező a másodperceket jelöli. Ez a mező 0 és 59 közötti értékeket támogat. Mivel a mező nullát tartalmaz, az első lehetséges értéket választja ki, ami egy másodperc.
A második mező a perceket jelöli. Az „*/5” érték két speciális karaktert tartalmaz. Először is a csillag (*) azt jelenti, hogy "a mező minden értékét ki kell jelölni". Mivel ez a mező perceket jelöl, a lehetséges értékek 0–59. A második speciális karaktert a perjel (/), amely növekedést jelöl. Ezen karakterek együttes használatával azt érjük el, hogy 0 és 59 között minden 5. érték lesz kijelölve. Egyszerűbben fogalmazva: ötpercenként.
A fennmaradó négy mező numerikusan egy 24 órás nap, a hónap napja, egy 12 hónapos év hónapjának és a hétnapos hét napjának az óráját jelöli. Ha ezen mezők egyike csillagot tartalmaz, az minden lehetséges értéket kijelöl. Ebben a példában tehát minden hónap minden napjának minden órája.
Amikor az összes mezőt összeadja, a kifejezés a következőként lesz felolvasva: "minden óra minden ötödik percének első másodperce, minden nap, minden hónap első másodperce".
Időzítő eseményindító létrehozása
Időzítő eseményindítót az Azure Portalon hozhat létre. A függvényalkalmazásban válassza ki az időzítő eseményindítóját az eseményindítósablonok listájából. Adja meg a végrehajtani kívánt logikát. Adja meg az időbélyegző paraméterének nevét és a CRON-kifejezést.
Ebben a modulban az eseményindítók portálon történő létrehozására összpontosítunk, de a Core Tools, a Visual Studio vagy a Visual Studio Code használatával programozott módon is létrehozhat triggereket.
Az időzítő eseményindítója konzisztens ütemezés szerint hívja meg a függvénykódot. Az ütemezés definiálásához egy CRON-kifejezést hoztunk létre, amely a pontos időintervallumot megadó sztring.