Autor Zpráva
JanMatoušek
Profil
Ahoj, potřebuji zajistit, aby běžel pro jednoho uživatele vždy jen jeden script s konkrétní operací.

myslel jsem si, že to vyřeším jednoduše tak, že si udělám tabulku lock a uložím si čas kdy zámek vyprší

spuštěním scriptu si uložím čas a tím si zamknu tento script pro daného uživatele.

ve scriptu mám jednoduchou kontrolu, že pokud se spustí znovu, tak v cyklu while testuje, zda už může běžet, pokud ano, projde.

toto vše mi funguje, ale jakmile si nasimuluji tuto operaci, tak mi druhý zavolaný script (co čeká na unlock) vždy spadne s hláškou "headers already sent"

setkal se s tím někdo? přijde mi, jak kdyby to bralo odeslání hlaviček toho prvního scriptu.

jak to řešit? napadá mě neelegantně tak, že vyhodím hlášku, že nelze aktuálně spustit druhý script, ale to se mi tak nelíbí... :-/
Keeehi
Profil
JanMatoušek:
Hláška headers already sent nemá (nebo by neměla mít) přímou souvislost s čekáním na dokončení. Je to celkem běžný problém, proto je taky ve zdejším FAQ Nejčastější potíže s PHP (FAQ) » Headers already sent…
JanMatoušek
Profil
no používám Nette a to výstupy víceméně z velké části řeší, každopádně to zkusím ještě ověřit, ale pokud ty scripty neběží současně tak ten problém nenastává, leda že by nette na pozadí v tomto případě něco dělalo neočekávaně.
Keeehi
Profil
JanMatoušek:
Bez kódu ti nikdo moc neporadí. Důležitá bude zřejmě část od místa kde to zjišťuje běh jiného scriptu až po část kde se nejspíše snažíš přesměrovávat. Také se bude hodit vědět, kde ten kód je, jestli v prezenteru, nebo někde jinde, v jaké metodě atp.

Vaše odpověď

Mohlo by se hodit


Prosím používejte diakritiku a interpunkci.

Ochrana proti spamu. Napište prosím číslo dvě-sta čtyřicet-sedm:

0