sviluppo merde

Recentemente mi occupo principalmente di codice invece dell'amministrazione in modo da drammi di cui sono servo con kodene sono molto più che come server di, così ho deciso di scribacchiato poche righe di assurdità che riescono a creare. Spinta si preparano a presentare il loro progetto che ha costretto l'apertura di parti in qualche modo drammatici

  • Първото нещо което което със сигурност щеше да създаде проблеми е изключването на javascript от браузърната поддръжка. Както всяка модерна апликация така и нашия инструмент използва доста JS за AJAX e altri processi dinamici che trasmettono l'interattività e la visione contemporanea e migliorare la funzionalità. Abbiamo pensato molto su come rendere più accettabile era con le informazioni dei cookie e quindi PHP per verificare se l'informazione è valida e, se tutto va bene. Piuttosto decisione letterato, ma alla fine sembra la versione più presentabile. HTML per essere giocato, se si tratta di noscript. Credo che sia la soluzione più elegante.
<noscript>
<meta http-equiv="refresh" content="0;URL=./nojs.html" />
</noscript>

In generale la situazione è banale se smettiamo di sostegno JS verrà reindirizzato a nojs.html. Soluzione semplice e molto efficace

  • php multhithreading – molti nishkovosta è una cosa molto utile per i processori con più anima (Non quella del single-core non è OK ma molte cose sistemi nucleari sono un'altra birra). Il nostro software ha una parte che si occupa di raccolta di informazioni da altri API – io e lei importva nel nostro database Danny. Obshtovzeto nessuna sfida con la differenza che si rese conto di nuovo con multhithreading php in modalità cli perché questo processo è dosatachno grande e ha bisogno di essere atomatiziran a qualcuno è indispensabile farlo a mano. Qui è stato un dramma associata con i processi fokrvaneto e il flusso non solo di creare processo figlio-e uno script che attendeva di priklyuchabota per creare una nuova. Sciocco che ha ucciso idea multiprocessing di ciò che è in realtà un comportamento e non multhithreading ma questi sono dettagli. La maggior parte addotti & dopo il processo che significa per continuare il loro lavoro scritto ancora nessun cambiamento nel comportamento richiesto e standard output dello script per essere reindirizzato – nel mio caso anche per /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 di nuovo via e banale. Da alle prestazioni Sono rimasto molto impressionato con intervallati tra il sollevamento dei processi e così ha fatto su 50 processo-un bambino che ha fatto la sua stranba 7800+ mysql inserisce su 30-40 sek. Una macchina è estremamente debole perché ci varar prova prima dell'applicazione di sollevare reale.

  • querys Mysql – Sono rimasto scioccato da una grande follia. C'era un codice che ha fatto 4-5 le richieste non necessarie al database, invece di utilizzare una query SQL più fecondo e quindi il lavoro principale per portare php-it. Il dramma era tale, più- напред се правеше една заявка която взимаше информация после изхода от заявката се използваше да се направят други заявки като тя служеше за аргументи. Доста грозна и тлъста ситуация. Subquery а е непозната територия явно както и left join или просто не са били обмисляни нещата добре. Хванах пренаписах заявката всичко се получи доста добре и като цяло натоварването падна с около 200% за същата част от кода.

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

Arricchito da Zemanta

2 Commenti

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

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

lascia un commento

L'indirizzo email non verrà pubblicato. i campi richiesti sono contrassegnati *

Anti Spam *