ignore_user_abort()
7. May, 2007, 14:02 UncategorizedIekš php.lv/f kāds iemeta vienu kodu ar PHP funkciju ignore_user_abort(). Funkcijas būtība ir tāda, ka ar tās palīdzību var pateikt PHP pārserim interpretātoram, lai turpina skriptu izpildīt arī tad, ja klients jau ir aizvēris logu (vai arī atvēris citu saiti). Godīgi sakot - nepatīk man šādas lietas īsti, bet jāatzīst, ka atsevišķos gadījumos var noderēt. Piemēram, ja uz hostinga servera nav piekļuves scheduler programmām. Palaižam skriptu ar ignore_user_abort(true), ieliek while() ar sleep() un vajadzīgo kodu, un fona process gatavs, kas ik pēc kāda laika veiks nepieciešamās darbības.
Ar šādām lietām gan jābūt uzmanīgam. Nedrīkst pieļaut iespēju palaist skriptu vairākas reizes. Jāseko līdzi, vai tas nenoslogo procesoru, kā arī vai laika gaitā nenoēd visu atmiņu. Kā arī nav garantija cik vispār šāda lieta ir stabila.
Protams arī, jāatceras, ka pēc servera restarta skripts būs jāpalaiž no jauna.
PS. Jāatcerās arī, ka pastāv tāda lieta, kā PHP max_execution_time konfigurācijas direktīva, kas ierobežo skripta maksimālo izpildes laiku. Tāpēc, ja vēlamies fonā laist nepārtrauktu skriptu, tad vajag izmantot set_time_limit() funkciju, lai norādītu neierobežotu izpildes laiku.


7. May, 2007, 14:43
Iekš php.ini ir “max execution time”, kurš ja tiks pārsniegts, tad tas skripts nosprāgs.
7. May, 2007, 14:54
Tas tiesa, bet ir arī set_time_limit() funkcija.
7. May, 2007, 17:01
Nu risinājums čerez ž
7. May, 2007, 21:27
Nevis php parseri (bez garā ā), bet gan php interpretatoram. Parseris ir kautkas tāds, kas parsē (lasa) kodu. Interpretators ir tas, kas izpilda kodu.
7. May, 2007, 21:41
Ok, bubu, turpmāk centīšos nejaukt šīs lietas. :)
7. May, 2007, 22:19
PHP sūkā. Īsti vīri lieto tikai Pitonu.
8. May, 2007, 13:20
Mazs labojums. Apache pats nokillos šādi “atstātu” procesu, ja tas nesūtīs lietotājam vai no tā nesaņems (failu augšupielādes gadījumā) nekādus datus pēc laika, kuru nosaka apača konfigurācijas direktīva “Timeout”. Kas un kā notiek ar citiem http serveriem, nezinu.
8. May, 2007, 14:57
wannable sūkā. Īsti viri nefleimo par valodu.
8. May, 2007, 16:37
nekas nekillojas, viss strādā.
pati diskusija -> šeit
kods - http://paste.php.lv/5528
rezultāts, vakar testējot \\//
Fails fails.txt tika papildinaats: 19:07:23
Fails fails.txt tika papildinaats: 20:07:23
Fails fails.txt tika papildinaats: 21:07:23
Fails fails.txt tika papildinaats: 22:07:23