razvoj sranja

Nedavno bavim uglavnom kod, a ne s upravom kako bi drame stojim sa kodene su mnogo više od poslužitelj tako, Pa sam odlučio samo piskarati dolje nekoliko redaka o glupostima koje sam uspio dobiti svoje. Teško dobivanje spremna predstaviti projekt kakva vrsta sila otvaranja dramatične dijelove

  • Първото нещо което което със сигурност щеше да създаде проблеми е изключването на javascript от браузърната поддръжка. Както всяка модерна апликация така и нашия инструмент използва доста JS за AJAX i druge dinamičke procese koji prenose interaktivnost i suvremene vizije i poboljšava funkcionalnost. Mislili smo o puno odluka kao najprihvatljiviji je kolačić sa informacijama i onda PHP da biste provjerili jesu li informacije vrijedi i ako je sve u redu. Vrlo pismen rješenje ali napokon pojaviti još više pristojan verzija. HTML ćenja noscript. Mislim da je najbolje moguće rješenje.
<noscript>
<meta http-equiv="refresh" content="0;URL=./nojs.html" />
</noscript>

Uglavnom situacija je trivijalno ako prestanemo JS podrška htijenje biti redirekcija to URnojs.html. Jednostavno i vrlo učinkovito rješenje

  • PHP multhithreading – vrlo niškovosta je nešto prilično korisno za procesora sa više jezgra (Ne na ednoâdreni nije u redu ali s mnogo nuklearnih sustava su pivo stvari). Naš softver je dio koji se bavi prikupljanje informacija od drugih API – i importva ga u našoj bazi podataka. Obŝovzeto nije izazov osim da se provodi php opet s multhithreading u cli način, jer to je dovoljno velika i moraju biti atomatiziran za to što netko radi to ručno. To je drama povezana s fokrvaneto procesa i ne stvara tok podređeni proces-(a) da je on čekao skriptu za priklûčabota stvaranja nove. Glupo to ubija ideja što ponašanje zapravo višestruko nije na multhithreading, ali ovdje su detalji. Prvo smo stavili & Nakon suđenja, što znači skriptu nastaviti rad ali opet je potrebna promjena u ponašanju i standardni izlaz iz skripte biti preusmjereni – u mom slučaju OK da /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 opet je trivijalno. Predstava je vrlo impresioniran sa prekinuto između procesa i slično sam napravio o 50 proces koji dijete skrenuli daleko 7800+ MySQL umetci za o 30-40 SEC. I stroj je vrlo delikatna jer smo test v″r″r prije da bi primjena prava.

  • MySQL pitanje – Bio sam šokiran velika glupost. Tamo je kod koji je 4-5 nepotrebne upite u bazi podataka, umjesto korištenja u sql upita i zatim masti glavni posao to php, to. Drama je bila takva, Većina- Sljedeća je zahtjev koji je podataka iz izlaza upita tada se koristi da se druge zahtjeve jer je služio za argumente. Prilično ružna i debela situacija. Podupit i očito je nepoznatom teritoriju i lijevi spoj ili jednostavno ne biti rastresen stvari pa. Sve ja rewrote aplikacija radi sasvim dobro i opterećenje kao cijeli pao za o 200% za isti dio koda.

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

Poboljšana po Zemanta

2 Komentari

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

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

ostavi odgovor

Vaša e-mail adresa neće biti objavljen. Obavezna polja označena su *

Protu-SPAM *