Ez az útmutató bemutatja a nagy teljesítményű Tulip-alkalmazások tervezésének bevált gyakorlatait, amelyek hatékonyan skálázhatók termelési környezetekben. Ezen ajánlások betartása segít biztosítani, hogy alkalmazásai reagálóképesek és stabilak maradjanak, még akkor is, ha a működésük bővül.
A cikkben szereplő ajánlások minden olyan esetben érvényesek, amikor megoldásai a Tulip API-hoz kapcsolódó csatlakozófüggvények használatát tartalmazzák. Ide tartoznak:
- Csatlakozófüggvény-futtatások vagy „ API Call” ( ) az alkalmazásszintű kiváltó eseményekre (pl. időzítő, gomb, lépés megkezdése)
- API-hívások a Node-RED-ből
- Olyan szkriptek, amelyek API-hívásai a Tulip-megoldásokon kívülről származnak
- Más rendszerekből a Table API használatával a Tulip táblákba történő írások
Mi az a nagyfrekvenciás trigger?
A nagyfrekvenciás trigger 5 másodpercnél gyakrabban (0,2 Hz-nél gyorsabban) fut. A gépattribútum-események, az eszközesemények és az időzítő-triggerek a leggyakoribb forrásai a nagyfrekvenciás végrehajtásnak.
A Tulip azt javasolja, hogy a triggerek ne futtassanak 5 másodpercnél (0,2 Hz) gyorsabban, az alkalmazás teljesítményének és reagálóképességének fenntartása érdekében.
A trigger-sor hatása
Az alkalmazás-triggerek felülről lefelé, egymást követő, egy szálú sorban futnak, amelyet trigger-sorának nevezünk.

Két tényező határozza meg, hogy a sor hatékonyan működik-e:
- A sorba való belépés gyakorisága: Milyen gyakran kerülnek trigger események a sorba
- A sorból való kilépés sebessége: milyen gyorsan fejezi be a trigger logika a végrehajtást
Ha a triggerek gyorsabban kerülnek be a sorba, mint ahogy kilépnek belőle, a sor felhalmozódik. A trigger-sor tartós felhalmozódása az alkalmazás késleltetését okozza, és egyes esetekben a trigger-események elvesztését is.
Képzelje el a kiváltó események gyakoriságát úgy, mint az autópálya forgalmát. Ha túl sok autó hajt fel az autópályára rövid időn belül, a forgalom lelassul. A torlódás elkerülése érdekében az autóknak olyan ütemben kell felhajtaniuk, amelyet az autópálya képes befogadni.
Összesített gyakoriság
Az alkalmazás összes trigger-eseményének együttes aránya határozza meg az általános sorba lépési arányt. Minden beállított trigger-esemény hozzájárul ehhez az együttes arányhoz.
Az összesített gyakoriságra vonatkozó példákat az alábbi táblázat tartalmazza:
| Konfiguráció | Összesített gyakoriság |
|---|---|
| 1 gépattribútum frissítése 1 másodpercenként | 1 Hz |
| 5 gépjellemző frissül 1 másodpercenként | 5 Hz |
| 1 gépjellemző (1 másodperc) + 1 időzítő (2 másodperc) | 1,5 Hz |
A trigger logika sebességskálája
A trigger logika típusa határozza meg, hogy a triggerek milyen gyorsan lépnek ki a sorból. A felhőalapú kommunikációt, átmeneteket vagy külső rendszerreakciókat igénylő logikák futtatása lényegesen hosszabb időt vesz igénybe, mint a helyi műveleteké.
Az alábbi táblázat a különböző logikatípusok sebességét mutatja be.
For high-frequency triggers, aim to use only logic rated Very fast or Fast.
| Sebesség | Logika típusa | Példák |
|---|---|---|
| Nagyon gyors | Helyi alkalmazáslogika | Helyi adatok (pl. változók) olvasása vagy frissítése |
| Gyors | Gyorsítótárba helyezett felhőadatok | Már betöltött táblázati rekordok olvasása |
| Közepes | Tulip Cloud | Táblázati rekordok betöltése, frissítése vagy létrehozása; a gép állapotának olvasása vagy frissítése |
| Lassú | Tulip Cloud | Táblázati összesítések és lekérdezések |
| Nagyon lassú | Külső rendszerek | Csatlakozó funkciók |
There is currently no easily accessible app performance log available for evaluating trigger performance. App performance can only be inferred through step times in completion records, which is useful in cases where steps involve extensive looping.
A trigger teljesítményét befolyásoló műszaki tényezők
- Helyi hardver – A trigger logika a helyi hardveren fut, ezért az eszköz specifikációi döntő hatással vannak arra, hogy a triggerek milyen gyorsan fejezik be a feldolgozást és lépnek ki a sorból. Az eszköz specifikációkat lásd a Tulip Player ajánlott eszközei című részben.
- Külső függőségek – A külső függőségek közé tartozik a felhőhöz való csatlakozás, a helyi hálózat késleltetése, valamint a külső rendszerek, például az Enterprise Resource Planning (ERP) válaszideje.
- Tulip Edge-eszközökön keresztül csatlakozó eszközök – A Tulip-alkalmazások a felhőhöz való csatlakozástól függenek, ami késleltetést okozhat. Például egy Edge-eszközhöz csatlakoztatott nyomatékszabályozó továbbra is a Tulip felhőszolgáltatásain keresztül kommunikál a Tulip Playerrel. Az eszközkapcsolatok megértéséhez tekintse meg ezeket a szekvenciadiagramokat a Tulip-illesztőprogramokon keresztüli eszközkapcsolatokról.
- Késleltetési problémák a csatlakozó funkciókkal – Egy rendszer (pl. egy ERP) lassú válasza egy csatlakozó funkción keresztül alkalmazáskésleltetéseket okozhat, különösen akkor, ha az alkalmazás számos rekordot futtat végig, amelyek mindegyike potenciálisan két másodperces API-hívást igényel. A rendszerkapcsolatok megértéséhez tekintse meg ezeket a vállalati rendszerekhez való csatlakozásra vonatkozó szekvenciadiagramokat.
- Késleltetés a gyártóüzem és a Tulip felhőinfrastruktúra között – A késleltetés minimalizálása érdekében a Tulip-példánya ugyanabban a földrajzi területen található, mint a gyártóüzeme.
Útmutató
Kerülje a nagy gyakoriságú triggereket
Amennyiben lehetséges, kerülje a nagy gyakoriságú triggereket, és helyettük használjon más funkciókat, például az automatizálásokat ( Automation).
Érdemes lehet az alkalmazás architektúráját is áttervezni, hogy alacsonyabb frekvencián működjön. Például:* Ritkább adatszolgáltatás lekérdezésekkel és összesítésekkel* Aszinkron felhasználási eseteknél a ciklusok végrehajtása az Automations segítségével történhet * Szinkron felhasználási eseteknél a szekvenciálisan elvégzendő ciklusokat a Functions segítségével kell végrehajtani
Ha mégis magas frekvenciájú triggert kell használnia, úgy kell konfigurálnia a triggert, hogy csak helyi feladatokat hajtson végre (pl. egy alkalmazásváltozó frissítése). Ezután használjon alacsony frekvenciájú triggert a lassabb végrehajtásokhoz (pl. egy táblázati rekord frissítése).
Ha nagy gyakoriságú időzítő-triggert használ a Tulip-alkalmazáson kívüli kontextusra való gyors reagáláshoz, akkor esetleg használhat egy „Event Stream” Tulip Machine-t gép- és eszköz-triggerekkel.
A Tulip táblázati API-k használata
A táblázati API-k másodpercenkénti többszöri olvasására vagy írására történő használata hatással lehet az instanciád teljesítményére, és késleltetést okozhat az adatok olvasásában vagy tárolásában. Az alábbi ajánlások minden olyan szkriptre és trigger-műveletre vonatkoznak, amelyek Tulip API-kat futtatnak egy Tulip-instancián:
Ajánlás
- Tervezze meg a logika végrehajtását úgy, hogy betartsa a Tulip táblázati sebességkorlátait
- Kerülje az ugyanazon táblában lévő rekord gyakori írását (több mint 1/másodperc)
A küszöbértékek túllépése esetén a Tulip sebességkorlátozást alkalmazhat, és 429-es hibakódot adhat vissza. A szkripteket úgy kell megírni, hogy ellenálljanak a 429-es hibakódoknak, és késleltetés után újra megpróbálják a műveletet.
Gép-, eszköz- és időzítő-triggerek
Az alacsony intervallumú időzítő-kiváltók (1–2 másodpercenként) túlterhelhetik az alkalmazásait, különösen akkor, ha az időzítő-kiváltók több API-hívást is tartalmaznak (pl. táblázati írások vagy csatlakozófüggvények futtatása).
Tulip no longer supports a timer trigger with <30sec frequency. For timer triggers used in an event-based architecture (i.e. a table record field changed or the current time is 7:00am), we recommend using Machines or [Automations]. Contact your Tulip representative if you have questions about this transition.
A gépi kiváltók figyelik a csatlakoztatott berendezések attribútumváltozásait, és ezekre reagálva hajtják végre a logikát. Amikor a „ machine attributes ” (Gépes jelentések) nagy gyakorisággal jelentkeznek, vagy ha több attribútumot figyelnek egyszerre, a kiváltók végrehajtása meghaladhatja azt a sebességet, amellyel az alkalmazás feldolgozza a kiváltókat. Ez teljesítménycsökkenéshez vezethet.
Ajánlás
- Korlátozza az machine attribute -előfizetéseket kizárólag azokra, amelyek az aktuális lépéshez vagy munkafolyamathoz szükségesek
- Válasszuk szét a nagy gyakoriságú logikát a felhőalapú műveletektől, és használjunk alacsonyabb gyakoriságú triggert a felhőtől függő műveletek kezeléséhez
Példa: Egy machine attribute másodpercenként négyszer frissül, és Önnek nyomon kell követnie a frissítések számát egy táblázati rekordban. 1. trigger (gépesemény): Frissítsen egy alkalmazásváltozót a beérkező gépi adatokkal. 2. trigger (időzítő, 10 másodpercenként): Írja a felhalmozott adatokat egy táblázati rekordba.
| Megközelítés | Konfiguráció | Teljesítmény |
|---|---|---|
| Optimális | A gépi trigger növeli az alkalmazásváltozót; az időzítő trigger 10 másodpercenként ír a táblába | Jó (felhőalapú működés 0,1 Hz-en) |
| Lassú | A gépi kiváltás minden frissítéskor közvetlenül a táblába ír | Gyenge (felhőalapú működés 4 Hz-en) |
- Fontolja meg az aszinkron feldolgozáshoz szükséges automatizálások használatát, hogy csökkentse a feldolgozási terhelést a trigger-sorban. Például, ha a gépi adatokat feldolgozni kell, de azok nem igényelnek azonnali operátori visszajelzést az alkalmazás munkamenetében
- A triggerekben csak gyors műveleteket használjon, például alkalmazásváltozók olvasását/frissítését vagy táblázati rekordok olvasását
- Értékelje az alkalmazás architektúráját, és fontolja meg annak áttervezését alacsonyabb frekvenciára, ha az Ön felhasználási esete számos attribútum magas frekvenciájú figyelemmel kísérését igényli. Alternatív megközelítések:
- Az adatok összesítése a gép vagy a perifériás eszköz szintjén, mielőtt azokat a Tulip-ba küldené
- Használjon automatizálásokat az adatgyűjtéshez és -feldolgozáshoz
- Csökkentse a jelentési gyakoriságot az adatforrásnál
- Fontolja meg a Tulip Player illesztőprogramok használatát a perifériás eszközökön futó illesztőprogramok helyett
- Torque eszköz Player-illesztőprogram
{{snippet.Megtalálta, amit keresett?}}


