| Autor | Zpráva | ||
|---|---|---|---|
| Marcus Flintus Profil |
#1 · Zasláno: 14. 11. 2012, 13:14:28
Zdravím,
mám skript, ve kterém mi nějakým způsobem cyklus optimalizuje určitá data. Čím víckrát cyklus proběhne, tím lépe pro mě, ale nesmím přetáhnout čas určený serverem pro provádění daného skriptu. Mohu nějakým způsobem nastavit, aby se cyklus zastavil třeba po 20 vteřinách? Tedy aby cyklus (while) vyskočil ve chvíli kdy doba provádění skriptu přesáhne 20 vteřin? Díky, MF |
||
| ShiraNai7 Profil |
#2 · Zasláno: 14. 11. 2012, 14:05:47
Můžeš uložit na začátku skriptu čas pravidelně ho kontrolovat. To ale nebude 100% přesné, protože čas, který skript skutečně běží není 1:1 vůči "skutečnému" času. Možná by se dala využít funkce
getrusage() (ale není dostupná ve Windows).
|
||
| user243 Profil |
#3 · Zasláno: 15. 11. 2012, 10:11:01
asi to není zrovna elegantní, ale...
$konec_scriptu = date("Ymdhis", strtotime("+20 seconds"));
while (date("Ymdhis") < $konec_scriptu) {
// nějaká činnost
} |
||
| ShiraNai7 Profil |
#4 · Zasláno: 15. 11. 2012, 10:34:29
user243:
Proč s funkcí date? Zbytečně složité (teda hlavně pomalé). $konec = time() + 20;
while(time() < $konec) {
// ...
} |
||
| user243 Profil |
#5 · Zasláno: 15. 11. 2012, 10:53:15
jsem psal, že to není asi elegantní, díky za typ;
|
||
| Marcus Flintus Profil |
#6 · Zasláno: 17. 11. 2012, 11:17:02
Díky :)
|
||
|
Časová prodleva: 13 let
|
|||
0