Autor Zpráva
Petr Ká
Profil
Ahoj, potřeboval bych poradit s konfigurací PHP nebo Apache (nevím, kde by mohlo být následující omezení).

Pokud spustím náročnější importní script, celý web se znefunkční a čeká až script dojede. Nelze toto omezení nastavit? Nějaký limit vláken nebo podobně?

Předem děkuji za rady


Pozn. : Ani funkce sleep(); nepomohla.
Davex
Profil
Petr Ká:
celý web se znefunkční a čeká až script dojede
Co to přesně znamená?

Nevím, jak by to mělo souviset s nastavením serveru. Nejčastěji se stává, že další skripty čekají na uzavření session pocházející od jednoho konkrétního klienta. Ostatní klienty by to blokovat nemělo.
Petr Ká
Profil
Davex:
Co to přesně znamená?
Prohlížeč čeká na odpověď serveru. Ten neodpoví dokud script nedoběhne do konce.

Bohužel blokuje, stránka se nenačte
shaggy
Profil
Petr Ká:
Ten neodpoví dokud script nedoběhne do konce.
Ale veď ten skript spúšťaš cez cron (napr.) a nie cez prehliadač. Tým pádom by mala prísť odpoveď zo servera okamžite.
Ako to máš naprogramované?
Davex
Profil
Petr Ká:
Bohužel blokuje, stránka se nenačte
To znamená, že se v tu chvíli nenačtou ani žádné statické soubory v jiném prohlížeči nebo na jiném počítači?

Jednoduchý skript, nevyužívající session, taky čeká?

<?php

  echo "OK";
Petr Ká
Profil
Davex:

Jednoduchý skript, nevyužívající session, taky čeká?
Otestován tak, že jsem importní script pustil ručně. Script bez session a DB pripojeni se spustí, s využitím session a DB čeká.

Máte nějaký návrh řešení?

Děkuji
YoSarin
Profil
A nedělá ten importní skript lock databáze? Co je to za databázi?
Davex
Profil
Petr Ká:
s využitím session a DB čeká
V tom případě to nesouvisí s konfigurací serveru a příčina je v zámku session nebo databáze.

Máte nějaký návrh řešení?
Nevím, co je přesnou příčinou, ale budu-li předpokládat, že se čeká na uzavření session, tak řešení je následující:
"pomalé" session_start
httpd.exe - více serverových jader pro jednoho klienta
Petr Ká
Profil
Davex:

Tisíceré díky :)

session_write_close()
pomohlo.

Problem fixed :)

Vaše odpověď


Prosím používejte diakritiku a interpunkci.

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