Vedd fel velünk a kapcsolatot ezen a számon: +36-30-925-6635
Az események API-n keresztüli, aszinkron beküldésére akkor lehet szükség, ha kockázatosnak tűnik az élő weblap backend kódjába egy külső API hívását bekötni. Több lehetőség is van ennek elkerülésére
Mivel a FindGore által biztosított kliens nem generál sem PHP error-t, sem Exception-t (legalábbis a FindGore csapata
által tesztelt szerver konfigurációkon), így a sikertelen API hívás nem befolyásolja a PHP kód további futását.
Hálózati probléma esetén lassulás léphet fel, ennek a hatását lehet csökkenteni a kliens HTTP timeout-jának csökkentésével.
Ezt a FindGoreNativeClient::API_TIMEOUT
konstans értékének csökkentésével lehet megtenni.
Ez egy egész szám, ami a timeout hosszát határozza meg másodpercben. A legkisebb érték 1 lehet.
A timeout elérése nem egyértelmű jele annak, hogy a FindGore rendszere a mér elindított kérést nem fogja feldolgozni,
maximum nem válaszolta meg a kérést a megadott időkorláton belül.
Párhuzamosítással teljesen külön lehet választani az esemény küldését és a weblap kiszolgálását.
Ehhez lehet használni a pcntl_fork()
függvényt. A gyerek szálon érdemes az API hívást indítani,
és a szülő szálon kiszolgálni a weblapot. A gyerek szál gyakorlatilag le is állhat amint az API hívás megtörtént.
Bevált módszer a weblap kiszolgálásáért közvetlenül nem felelős, kritikus kódok futtatását a HTTP kapcsolat
lezárását követően futtatni, ezt az esemény küldésénél is megtehetjük.
Erre egy kiindulási kód:
ignore_user_abort(true);
set_time_limit(0); //ezt érdemes annyira állítani, ami még elfogadható
ob_start();
// html kód generálása
header('Content-Length: '.ob_get_length());
echo ob_get_contents();
ob_end_flush();
ob_flush();
flush();
// API hívás(ok) indítása
Az eseményeket be lehet egy időzített script-ből is küldeni, ebben az esetben viszont két dologgal tisztában kell lenni:
Csak akkor érdemes így küldeni az adatokat, amennyiben ezek a megkötések nem befolyásolják az üzleti igényeket, illetve a mérési módszertant.