PHP multithread
Sziasztok!
Van egy PHP/MySQL oldalam, amin szeretnék a "háttérben" kommunikálni egy másik szerverrel. A kommunikáció rendben működik, de nem tudom, hogyan tudnám a háttérbe kényszeríteni a folyamatot.
A folyamat: felhasználó beküldi a megfelelő adatokat a weblapon, PHP beírja a helyi adatbázisba. Ez ismétlődhet rövid időn belül akár többször is. Az így begyűjtött adatoknak egy részét szeretném átküldeni egy másik szerverre, de nem szükséges, hogy a kommunikáció azonnal megtörténjen, sőt, erősen ellenjavalt, hogy a kommunikáció blokkolja az aktuális műveletet. Annál is inkább, mivel előfordulhat, hogy akkor rögtön nem is sikerül az adatátvitel.
Van erre valami elegáns módszer?
Köszi:
N0r3i
■ Van egy PHP/MySQL oldalam, amin szeretnék a "háttérben" kommunikálni egy másik szerverrel. A kommunikáció rendben működik, de nem tudom, hogyan tudnám a háttérbe kényszeríteni a folyamatot.
A folyamat: felhasználó beküldi a megfelelő adatokat a weblapon, PHP beírja a helyi adatbázisba. Ez ismétlődhet rövid időn belül akár többször is. Az így begyűjtött adatoknak egy részét szeretném átküldeni egy másik szerverre, de nem szükséges, hogy a kommunikáció azonnal megtörténjen, sőt, erősen ellenjavalt, hogy a kommunikáció blokkolja az aktuális műveletet. Annál is inkább, mivel előfordulhat, hogy akkor rögtön nem is sikerül az adatátvitel.
Van erre valami elegáns módszer?
Köszi:
N0r3i
cron?
trigger
Erdekes hogy ez a cron tema mindig felmerul ilyenkor pedig szerintem az idozitett futattas es az igeny szerinti futttas nem azonos.
Hogyan?
Ha nem a saját szerveremen használom, van esélyem ilyesmit kérni?
rendszergazdi
A rendszer meg ha eszre veszi a file valtozasat meghiva a mit beallitasz neki, jelen esetben egy masik php sciptet ami majd kommunikal meg teszi a dolgat a "hatterbe" . Igy a felhasznalo altal hasznalt script csak a db-be tur ill a filebe rak bele valamit. (ez a filet mi meg egyfajta lognak is hasznaljuk. Beleirunk egy datumot meg akar user id-t igy latjhato hogy ki mikor csinalt valamit)
Ha nem sajat szervered van akkor meg kell kerdezni a redszergazdajat hogy van erre lehtoseg vagy sem. (gyanitom a nem valasz fog erkezni:) es akkor marad a cron, ha az lehetseges)
Juj
nem
Teljesen fuggetlen a lockolastol. linearis az ugy:
-php script beleir
-oprendszer filesystem eszreveszi hogy valtozas van hivja masik script
kozben meg 20x beirahat mindenki abszolut nem erdekel senkit mert a feldolgozando adat db-be van.
egyszerű
sokszor felmerül a cron használata ez igaz, viszont az esetek 90%-ában a kérdező nem tudja mi az. magyarázd el neki a triggert. :]
Tudom mi a cron
Szerintem sem arra való, amit fent leírtam, ui. nem tudom, hogy mikor fog bekövetkezni egy esemény. Óránként futtatva egy kicsit lassú lesz a frissítés, 5 percenként futtatva meg sok felesleges futás lesz.
Szóval jobban tetszene a trigger amit - bár tudom hogy mit jelent - még sosem használtam, nem találkoztam vele, és azt sem tudom, hogy egy nem általam felügyelt szerveren használhatok-e.
nem rólad van szó
szerk: nem magadról kellett volna elmondani valamit, hanem a szerverről (tiéd-e, oprendszer, stb), te is látod mennyi függ például attól, milyen jogaid vannak.
Más megoldás?
Azért lenne még egy kérdésem a témában: találtam egy francia nyelvű oldalt a php multithreading témában, ami - ha jól gondolom - szintén megoldás lehetne a problémámra, csak sajnos nem tudok franciául, így egy kukkot sem értek a leírtakból :-(
Néztem a skeletont is, amit sajnos szintén nem értek :-((
Szerintetek arra van esély, hogy ez működjön? És hogyan? Többek között az a baj, hogy nem látok benne olyan részt, ahova az én kódomat kellene tennem, olyan függvényt, ami hívnom kellene ahhoz, hogy elinduljon egy új thread. Erre van ötletetek?
Most csak Windows-on tudnám kipróbálni (meg is tettem...) de eleve úgy kezdi, hogy nem fog műküdni, és tényleg ;-) Az éles üzem viszont linuxon lesz, szóval esélyes lehet.
process control functions
Multithreaded
Szerintem, az a megoldás, hogy egy system hívással elindítasz egy fájlt, (ami megcsinálja a feladatot,) nem szinkron módon. Windows alatt start paranccsal tudod megcsinálni, Linux alatt nem tudom. Ez persze azt jelenti, hogy ha több egy ilyen esemény jön be, akkor több process fog futni.
lock file
Ez a system dolog mennyire biztonságos? Hívhatok így (elsősorban linuxon érdekes) egy mások PHP scriptet?
Hívhatsz