Jump to content
php.lv forumi

php konsoles interpreteris gljuko...


andrisp

Recommended Posts

uzliec sākumā

set_time_limit(0);

 

pēc defaulta pēc 30 sekundēm nomirst

19070[/snapback]

 

hmm, man kautkas shepat forumaa teica, ka interpreterim neesot limits.. un tas skripts starpcitu nenomirst katru reizi vienaa laikaa, biezhi vinjs nodarbojas dazhas dienas un tikai tad kautkad nospraagst..

Link to comment
Share on other sites

Venom: http://lv.php.net/manual/en/features.commandline.php

(Table 43-1. Overridden php.ini directives)

max_execution_time 0 (unlimited)

 

andrisp: a kā viņš nomirst? Ar erroru kautkādu, vai vienkārši iziet ārā klusēdams?

Moš tev tur atmiņa leako. Pamēģini darīt piemēram mysql_free_result pēc kverija datu apstrādes. Izdrukā pirms cikla/pēc cikla memory_get_usage() un salīdzini ciparus.

Edited by bubu
Link to comment
Share on other sites

bet mysql timeouts? + palabo "perlus"

while(1 == 1) => while(true)
"$datubaze" => $datubaze
$rez[persona] => $rez['persona']

+ skripts ja nevarēs piekonektēties, atlieksies turpat uz mysql_connect, liec error-supressingu:

if (!($serveris=@mysql_connect ( $servera_ip, $lietotajs, $parole )))
=> if ( empty ( $serveris ) ) un ja nu resource handlam tiks piešķirts kārtas numurs 0? tad jau vismaz
if ($serveris===false)

 

un takal, ja jau tev loops, tad die nedrīkst izmantot - atslēgs skriptu uz visām reizēm, labāk liec sleep un contunue

Link to comment
Share on other sites

Cik saprotu pēc tā, kā tu viņu izsauc (php fails.php &) tev ir linux-veidīga operētājsistēma. Vai nav prātīgāk to skriptu likt nevis ciklā ar while (1 = 1), bet vienkārši iemānīt iekš cron? Tb. tu katru skripta ciklu laid reizi 3 stundās tad nu vienkārši ņem un laid viņu no cron šādi:

 

* */3 * * * php /celjsh/uz/failu/fails.php

 

(protams, neaizmirsti novākt to while ciklu tādā gadījumā)

 

Šādi tu atmiņas resursus (lai arī nelielus), tomēr ietaupītu un tad nebūtu jāuztraucas, ka skripts pēc kāda laika nosprāgst.

 

Nosprāgšana var būt kāda atmiņas apgabala neatbrīvošanas dēļ vai kādu citu iemeslu dēļ. Ja ir tā, kā tu saki, ka skripts reizēm nosprāgst tikai pēc pāris dienu darbības, tad godīgi sakot atrast problēmas cēloni varētu būt pagrūti.

Link to comment
Share on other sites

bubu: izchekoju log failus, neko nevareeju atrast, kas vareetu buut saistiibaa ar manu skriptu, taakaa pienjemu, ka vinjs nomirst klusiiteem...

 

Venom: pielaboshu skriptu peec taviem ieteikumiem.. hmm, bet ko noziimee "perli"? bet vai tad vispaar varbuut mysql connection timeout ? skripts piesleedzas un atvienojas katru reizi veidojot jaunu savienojumu..

Link to comment
Share on other sites

es domāju - vb pārāk daudz datu, jo tev itkā var sanākt ka ar katru palaišanas reizi nolasīto datu paliek arvien vairāk un vairāk, vismaz varētu kautkā atzīmēt log'us, kuri tika apziņoti (update set sent=1/delete)

 

NB: OR atr_laiks = '' OR atr_laiks = ' ' var aizvietot pret TRIM(atr_laiks)=''

 

perli - ironisks kļūdu apzīmējums. bez ironiskuma tā parasti apzīmē kautko izcilu, e.g. dzejas rindiņas, u.c. "literārās izvirtības"

Link to comment
Share on other sites

×
×
  • Create New...