Egy egyszerű megoldás, bízd a kizárást az adatbázisra:
Hozz létre egy táblát, amiben egy rekord van összesen, és egy mező: futas number(1, 0).
0 az érték, ha nem fut a folyamat, 1 értékkel ha fut.
A programod induláskor beupdate-eli ezt az egy sort 1-re, úgy hogy a where-be beteszed: where futas = 0;
Ha 0 sort update-elt, akkor van konkurens folyamat, kilép, ha 1-et, akkor megszerezte a futatás jogát. A PHP-t nem ismerem, de rákerestem gyorsan, és lekérdezhető, hogy hány sor volt érintett az update-ben.
Kilépéskor visszaupdate-eled 0-ra.