dezvoltarea shits

Recent am ocupa in principal cu cod în loc de administrare, astfel de drame în fața cărora să stau cu kodene sunt mult mai mult decât un astfel de server, așa că am decis să mâzgăli câteva linii de prostii care reușesc să creeze. Potențat se pregătesc să prezinte proiectul care a forțat deschiderea pieselor oarecum dramatice

  • Първото нещо което което със сигурност щеше да създаде проблеми е изключването на javascript от браузърната поддръжка. Както всяка модерна апликация така и нашия инструмент използва доста JS за AJAX și alte procese dinamice care transmit interactivitate și viziunii contemporane și de a îmbunătăți funcționalitatea. Ne-am gândit pentru decizii destul ca a fost cea mai acceptabilă cu informații cookie și apoi PHP pentru a verifica dacă informațiile sunt valabile și dacă totul este în regulă. Destul de decizie știință de carte, dar apar în cele din urmă versiune mai prezentabil. HTML pentru a fi jucat în cazul în care este vorba în NOSCRIPT. Cred că este soluția cea mai elegantă.
<noscript>
<meta http-equiv="refresh" content="0;URL=./nojs.html" />
</noscript>

În general, situația este fără importanță dacă ne oprim sprijinul JS va fi redirecționat către nojs.html. Soluție simplă și foarte eficientă

  • PHP multhithreading – mulți nishkovosta este ceva destul de util pentru procesoare cu mai multe core (nu al single-core nu este în regulă, dar multe lucruri sisteme nucleare sunt o alta bere). Software-ul nostru are o parte care se ocupa cu colectarea de informații de la alte API-ul – ea și eu importva în baza noastră de date Danny. Obshtovzeto nici o provocare, cu excepția că a realizat din nou cu multhithreading php în modul cli deoarece acest proces este dosatachno mare și trebuie să fie atomatiziran cuiva este imperativ să o facă cu mâna. Aici a fost o dramă asociată cu procesele fokrvaneto și flux nu numai a crea Procesul copil-și un scenariu care a așteptat să priklyuchabota pentru a crea un nou. Trăznite care a ucis ideea Multiprocesare a ceea ce este de fapt un comportament și nu multhithreading, dar acestea sunt detalii. Cele mai înaintate & după proces, ceea ce înseamnă să continue script-ul lor de lucru încă nici o schimbare de comportament necesar și de ieșire standard a script-ul care urmează să fie redirecționat – în cazul meu, precum și pentru /dev / null 🙂 Накрая структурата на тази част от кода изглеждаше така
$pid = pcntl_fork();
if ($pid == -1) {
die('could not fork');
}else if ($pid) {
// we are the parent
echo "I'm parent  \n";
pcntl_wait($status); //Protect against Zombie children
} else {
// we are the child
echo "I'm a child $timer  \n";
exec("$command > /dev/null &");
exit (0);
}

Primerčeto din nou e banal. De la performanța am fost foarte impresionat de intercalat între ridicarea proceselor și așa a făcut cu privire la 50 Procesul-un copil care a făcut stranba sale 7800+ mysql introduce despre 30-40 sek. O mașină este extrem de slabă, deoarece am varar test inainte de aplicare pentru a ridica reale.

  • querys Mysql – Am fost șocat de o mare nebunie. A existat un cod care a făcut 4-5 solicitări inutile în baza de date, în loc de a folosi o interogare sql mai fructuoasă și apoi lucrarea principală pentru a aduce php-it. Drama a fost astfel, cele mai multe- a făcut mai întâi o cerere de informații a luat apoi rezultatul cererii este utilizat pentru a face alte solicitări a servit ca argumente. Destul de urât și de situația de grăsime. subinterogare dar se pare că teritoriu necunoscut și, din stânga se alăture sau nu, pur și simplu a fost avute în vedere lucrurile bine. Cererea prins a rescris totul a fost destul de rece, iar întreaga sarcină a scăzut cu aproximativ 200% pentru aceeași bucată de cod.

В общи линии това са нещата на последък с които се заниамваме и немога да кажа че е скучно но понякога се изумявам от разни необмисляни парчета код които трябва да поправям а най стеращното е че често са мои 😆

Consolidată prin Zemanta

2 comments

  1. И аз имам тегления на данни, сложени в crontab-a. Пробвах преди със & в края, но ставаше пиково натоварване, грозна история. Сега съм ги оставил, като свърши единия процес, да пуска другия, но това е ужасТ :> Като зацикли някъде и всичко отива по дяволитетова го решавам като килвам старите процеси, като дойде време да се пуска новия, но това е още по-голям ужасТ, защото губя данни. Та ще се се опитам да имплементирам, твоето решене по този въпрос. Благодарско! 🙂

    1. Ами по моя метод хубавото е че информацията може да се обработва от няколко процеса едновременно но това също ти гарантира по голямо натоварване 😉 Баланса между натоварване и скорост винаги е много тънък. Всичко опира до тестове.

lasa un raspuns

Adresa ta de email nu va fi publicat. Câmpurile necesare sunt marcate *

Anti SPAM *