Blokada przed uruchamianiem wielu kopii skryptu

pyt Q

Chciałbym blokować w _każdym_ przypadku, a już w szczególności w sesji. Całe szczęście, że w sesji działają mutexy, bo mogę przynajmniej uruchomić skrypty w sekcji krytycznej. Idealnym wyjściem byłoby jednak, gdyby drugi skrypt zamiast czekać na koniec pierwszego od razu wykonał exit() Grzegorz Pietrzak
A ten mój przykład bazujący na Twoim, to on "czeka koniec pierwszego"? Czyli, czy odpalenie drugiej instancji mojego przykładu czeka na zakończenie pierwszej? Bo IMHO nie
Możesz też użyć osobnego skryptu, który będzie sprawdzał czy jest lock na głownym skrypcie, jak jest to go nie wywołuje, a jak nie ma to go wywołuje - mówiąc prościej - sprawdzanie blokady zrealizować w osobnym skrypcie. Coś w ten deseń:
<?php // $script = "raz_prosze.php" $lockfile = $script . '.lock';
if (file_exists($lockfile)) { exit; } else { touch($lockfile); require $script; unlink($lockfile); } ?>
<?php // raz_prosze.php sleep (0); ?>

odp A

On 10 Lis, 18:28, zapzap Nie wiem czy do końca rozumiem, ale czy to co napisałeś nie spełnia zadania?
Wyczytałem też, ze chcesz "jak na złośc na poziomie sesji" blokowac, czyli rozumiem, że różne sesje moga odpalać każda swoją instancję skryptu, ale żadna z nich nie może odpalić dwóch instancji? Wtedy może po prostu dodać do nazwy lockfile'a identyfikator sesji?
Peace.
Chciałbym blokować w _każdym_ przypadku, a już w szczególności w sesji. Całe szczęście, że w sesji działają mutexy, bo mogę przynajmniej uruchomić skrypty w sekcji krytycznej. Idealnym wyjściem byłoby jednak, gdyby drugi skrypt zamiast czekać na koniec pierwszego od razu wykonał exit()
Ostra walka widzę. Jakoś mam wrażenie, że niedługo wynajdziesz transakcję SQL ;)

odp A

Chciałbym blokować w _każdym_ przypadku, a już w szczególności w sesji. Całe szczęście, że w sesji działają mutexy, bo mogę przynajmniej uruchomić skrypty w sekcji krytycznej. Idealnym wyjściem byłoby jednak, gdyby drugi skrypt zamiast czekać na koniec pierwszego od razu wykonał exit() Ostra walka widzę. Jakoś mam wrażenie, że niedługo wynajdziesz transakcję SQL ;) Jacek Czerwinski :

Powodzenia z transakcjami w MyISAM.

odp A

Jacek Czerwinski :
Chciałbym blokować w _każdym_ przypadku, a już w szczególności w sesji. Całe szczęście, że w sesji działają mutexy, bo mogę przynajmniej uruchomić skrypty w sekcji krytycznej. Idealnym wyjściem byłoby jednak, gdyby drugi skrypt zamiast czekać na koniec pierwszego od razu wykonał exit()
Ostra walka widzę. Jakoś mam wrażenie, że niedługo wynajdziesz transakcję SQL ;)
Powodzenia z transakcjami w MyISAM.
Tzreba się uczyć porządnych baz a nie internetowych zabawek.

Dodaj odpowiedź

Tytuł:

Mail: (w celu weryfikacji posta)