pilots Posted October 29, 2007 Report Share Posted October 29, 2007 (edited) cron jobs ir uztaisīts php failam, kurš mēdz ilgi izpildīties. tas, ko viņš dara ir iet cauri vairākām rss barotnēm un saturu importē uz mysql datubāzi. rss ziņu savācējs. par šo error - MySQL server has gone away, cik palasīju, tad wait timeout varbūt ir pie vainas. cik paskatījos no myadmin, tad šobrīd tas ir 20. vai šo uzstādījumu var izmainīt to norādot php failā? kādi vēl šajā situācijā varētu būt iemesli un risinājumi? Edited October 29, 2007 by pilots Link to comment Share on other sites More sharing options...
martins256 Posted October 29, 2007 Report Share Posted October 29, 2007 varbūt sadali kkā pa daļām tās rss lasīšanas... vai piem vispirms nopingo visas - pārbaudi va serveri on un tad ar nākošo piegājienu kopē saturus. Piem ja kāds serveris būtu off, tad tā lieta apstātos uz ilgāku brītiņu. Vēl (pa ausu galam esmu dzirdējis), ka var kkā multitheating taisīt ~ laist vairākus procesus reizē... tad pie kāda servera aizkavēšanas, netiktu aikavēts viss... Link to comment Share on other sites More sharing options...
pilots Posted October 29, 2007 Author Report Share Posted October 29, 2007 precīzāk varētu to vārdu - multitheating? savādāk google neko pa tēmu neatrod. un kā veikt efektīvi pārbaudi vai serveri ir onlainā? pie daudz rss barotnēm tas tāpat šķiet būs ilgi. droši vien kautkā jādala pa daļām rss saraksts, pie lielākiem daudzumiem. Link to comment Share on other sites More sharing options...
andrisp Posted October 29, 2007 Report Share Posted October 29, 2007 multithreading... Link to comment Share on other sites More sharing options...
pilots Posted October 29, 2007 Author Report Share Posted October 29, 2007 paldies... Link to comment Share on other sites More sharing options...
Paulinjsh Posted October 30, 2007 Report Share Posted October 30, 2007 Tev varētu noderēt http://www.electrictoolbox.com/article/php/process-forking/ un http://www.php.net/manual/en/ref.pcntl.php Link to comment Share on other sites More sharing options...
Roze Posted October 30, 2007 Report Share Posted October 30, 2007 cron jobs ir uztaisīts php failam, kurš mēdz ilgi izpildīties. tas, ko viņš dara ir iet cauri vairākām rss barotnēm un saturu importē uz mysql datubāzi. rss ziņu savācējs. par šo error - MySQL server has gone away, cik palasīju, tad wait timeout varbūt ir pie vainas. cik paskatījos no myadmin, tad šobrīd tas ir 20. vai šo uzstādījumu var izmainīt to norādot php failā? kādi vēl šajā situācijā varētu būt iemesli un risinājumi? Nē šo settingu nevar nomainīt no PHP.. un visdrīzāk konkrētā wait_timeout 20 sekunžu maksimālais idle laiks konkrētā gadijumā arī iedarbojas.. Risinājums: ieliec vienkārši mysql_connect() (ar visiem parametriem protams) pirms katra sql kverija (pēc katra ilgā izpildes procesa - proti tajās vietās kur tev izmet to 'Gone away') un php vajadzētu rekonektēties ja būs pazaudējis konekciju... Nekādus multithreading vipendronus nav jātaisa :) Link to comment Share on other sites More sharing options...
pilots Posted October 30, 2007 Author Report Share Posted October 30, 2007 (edited) es īsti nezinu, kurās vietās man izmet to ziņojumu (proti, pie šī ziņojuma netiek izdots kurā rindā tas noticis, kā tas ir ar erroriem) - gone away.. vai nav tā ka kamēr skripts tur tos rss ierakstus ķersta, tas izvēršas ilgā pasākumā un tas mysql has gone away ziņojums tiek izdots neatkarīgi no tā līdz kurai vietai skripts ticis? droši vien šādos rss ierakstu savākšanas pasākumos, vislielākā bēda ir ka bieži tā rss atvēršana aizņem pa daudz laika, vai arī vispār neizdodas pieslēgties. Edited October 30, 2007 by pilots Link to comment Share on other sites More sharing options...
Roze Posted October 30, 2007 Report Share Posted October 30, 2007 vai nav tā ka kamēr skripts tur tos rss ierakstus ķersta, tas izvēršas ilgā pasākumā un tas mysql has gone away ziņojums tiek izdots neatkarīgi no tā līdz kurai vietai skripts ticis? Nē gone away vajadzētu būt response uz mysql_query() vai mysql_error() izdruka (paskaties kur tev tādi ir). Testa nolūkos var salikt mysql_connect pirms visiem kverijiem un tad paskatīties kas notiek.. vai arī pa vienam un skatīties vai pazūd, taču vienkāršāk jau padrukāt laukā kaut ko echo 'rindas 10'.mysql_error(); Link to comment Share on other sites More sharing options...
Recommended Posts