Na přání @danmaneu :
Pokud chcete on-line replikovat data do jiného systému, postupujte následovně:
Vezměte soubor DemoExportPlugin.php a udělejte z něj kopii pod novým jménem (aby vám to následné aktualizace nepřepsaly). S přejmenováním souboru je potřeba přejmenovat i tu třídu v něm definovanou!
Plugin má dva vstupní body:
1) Konstruktor, kde stojí za to si navázat spojení na externí systém atd.
2) Funkci exportRecord(). Ta je zavolaná pro každý nový záznam poté, co doběhne interní zpracování v jádru aplikace. Musí vrátit číslo: 0 = OK, jiná hodnota = chyba.
Nově vzniklý soubor dejte do adresáře Plugins/.
V app/config/local.neon je na konci sekce:
services:
# Pokud chcete vsechny vznikle zaznamy replikovat do jineho systemu, definujte plugin, ktery to bude resit.
# Odkomentujte nasledujici radek a zmente tam jmeno classu. A zajistete spousteni jobu crontask/export
# exportPlugin: App\Plugins\DemoExportPlugin
Odkomentujte poslední řádku a zadejte v ní jméno vašeho exportního pluginu.
Důležité:
- Jak je psáno v popisu instalace, po změně aplikace či konfigurace je potřeba smazat keš v adresáři (aplikace)/temp/cache .
- Povolte zobrazení detailního výpisu chyb pro IP adresu, ze které to budete zkoušet (viz popis instalace).
Zadejte do prohlížeče http://vas-server/iot/crontask/export a vyzkoušejte, jak to funguje. Pokud už nějaká data jsou, může to běžet až minutu, než vám to vrátí výsledek. Informaci o běhu následně najdete v logu cron.<datum>.txt – jedná se o řádky uvedené textem [exp].
No a pokud to funguje, zadejte do cronu s minutovým intervalem spouštění:
wget -O /tmp/1.tmp http://vas-server/iot/crontask/export
a replikace poběží sama na pozadí.
V rámci jednoho webového požadavku běží úkol maximálně minutu. Skončí po dosažení cílového času 55 sekund, nebo po odeslání všech čekajících dat, nebo po první chybě.