utveckling skiter

Nyligen hantera jag främst med kod i stället för med Administration så att dramat jag står med kodene är mycket mer än server sådana, så jag beslutat att bara klottra ner några rader om skitsnack som jag lyckas få sin. Hårt för att få redo att presentera ditt projekt vad slags tvinga öppnandet av de dramatiska delarna

  • Първото нещо което което със сигурност щеше да създаде проблеми е изключването на javascript от браузърната поддръжка. Както всяка модерна апликация така и нашия инструмент използва доста JS за AJAX och andra dynamiska processer som överför interaktivitet och samtida vision och förbättrar funktionalitet. Vi tänkte en massa beslut som den mest acceptabla var en cookie med information och sedan php att kontrollera om informationen är giltig, och om allt är OK. Ganska skrivkunnig lösning men slutligen visas ännu mer anständig version. HTML genomföras i noscript. Jag tror att det är den mest eleganta lösningen.
<noscript>
<meta http-equiv="refresh" content="0;URL=./nojs.html" />
</noscript>

I princip situationen är trivialt om vi slutar JS stöd kommer att omdirigeras till URnojs.html. Enkel och mycket effektiv lösning

  • Php multhithreading – Mycket niškovosta är bara något som är ganska användbart för processorer med flera kärnor (inte för att ednoâdreni är inte OK men med många nukleära system är en annan saker öl). Vår programvara har en del som behandlar insamling av information från andra API – och importva det i vår databas. Obŝovzeto ingen utmaning utom att vi genomfört php igen med multhithreading i cli-läge, eftersom denna process är tillräckligt stor och behöver vara atomatiziran för att ha någon gör det för hand. Här fanns det ett drama i samband med fokrvaneto av processer och skapar inte streama Child-process-(a) att han väntade på ett skript för att priklûčabota att skapa en ny. Dumma det dödar idén om vad beteende faktiskt multiprocessing är inte multhithreading men här är detaljerna. Första vi sätter & Efter rättegången, vilket innebär att ditt manus att fortsätta arbete men återigen fanns ingen förändring i beteende krävs och standard utdata från skript omdirigeras – i mitt fall OK att /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 igen är trivialt. Prestanda var mycket imponerad av den avbrutna mellan processer och så vidare jag gjorde om 50 barn process-som gjorde en sväng bort 7800+ MySQL skär för om 30-40 SEC. Och maskinen är extremt känslig eftersom vi testa v″r″r innan för att göra tillämpningen av verkligheten.

  • MySQL querys – Jag blev chockad av en stor dumhet. Det fanns en kod som gjorde 4-5 onödiga frågor till databasen, istället för att använda en sql jobb-fråga och sedan fett main det php-it. Dramat var sådan, de flesta- Nästa var en begäran som tog information från frågeresultatet används sedan för att göra andra förfrågningar som hon tjänade för argumenten. Ganska ful och fet situationen. Underfråga och tydligen är obekant territorium och vänster koppling eller helt enkelt har inte abstraherade saker väl. Jag fick allt jag skrev om den ansökan fungerar ganska bra och belastningen som en hela föll av om 200% för samma del av koden.

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

Förstärkt av Zemanta

2 comments

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

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

Lämna svar

Din e-postadress kommer inte att publiceras. Obligatoriska fält är markerade *

Anti SPAM *