Azure-függvény futtatása ütemezés szerint

Befejeződött

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.

  1. Az időbélyegző paraméter neve, amely az időzítőnek a kódban szereplő azonosítója.
  2. 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.