ignore_user_abort()

By skepmean

Iekš 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.

Atstāj atbildi