ontwikkeling shits

Onlangs omgaan ik vooral met de code in plaats van de administratie, zodat drama's wiens dienst ik sta met kodene zijn veel meer dan een dergelijke server, dus besloot ik om een ​​paar regels van de onzin die erin slagen om te creëren krabbelde. Boosted zich voorbereiden op hun project, dat de opening van de ietwat dramatische delen gedwongen presenteren

  • Първото нещо което което със сигурност щеше да създаде проблеми е изключването на javascript от браузърната поддръжка. Както всяка модерна апликация така и нашия инструмент използва доста JS за AJAX en andere dynamische processen die interactiviteit en hedendaagse visie overbrengen en het verbeteren van de functionaliteit. We dachten veel over het maken van de meest aanvaardbaar was met cookie-informatie en vervolgens php om na te gaan of de informatie geldig is en als het goed is. Heel geletterd beslissing, maar uiteindelijk lijken meer presentabel versie. HTML worden gespeeld als het komt in noscript. Ik denk dat het de meest elegante oplossing.
<noscript>
<meta http-equiv="refresh" content="0;URL=./nojs.html" />
</noscript>

Over het algemeen is de situatie is triviaal als we stoppen met JS steun zal worden doorgestuurd naar nojs.html. Eenvoudige en zeer effectieve oplossing

  • php multhithreading – veel nishkovosta is iets heel nuttig voor processors met meer kern (niet die van de single-core is niet OK, maar veel dingen nucleaire systemen zijn nog een biertje). Onze software heeft een deel dat zich bezighoudt met het verzamelen van informatie uit andere API – zij en ik importva in onze database Danny. Obshtovzeto geen probleem, behalve dat het opnieuw gerealiseerd met multhithreading php in cli modus, want dit proces is dosatachno groot en moeten worden atomatiziran iemand is het noodzakelijk om het te doen met de hand. Hier was een drama geassocieerd met fokrvaneto processen en stroom niet alleen te maken kind-proces-en een script dat gewacht om priklyuchabota om een ​​nieuwe. Silly dat multiprocessing idee van wat is eigenlijk het gedrag en niet multhithreading gedood, maar deze zijn details. De meeste naar voren gebracht & na het proces, wat betekent om hun werk script nog geen verandering in gedrag vereist is en standaard output van het script nog steeds worden omgeleid – in mijn geval ook naar /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 weer e triviale. Van de prestaties was ik zeer onder de indruk afgewisseld tussen de opheffing van de processen en dat deed over 50 kind proces-een die zijn gemaakt stranba 7800+ mysql voegt over 30-40 sek. Een machine is zeer zwak omdat we varar testen vóór het aanbrengen op echte verhogen.

  • mysql querys – Ik was geschokt door een grote dwaasheid. Er was een code die gemaakt 4-5 onnodige verzoeken naar de database, in plaats van een meer vruchtbare sql-query en vervolgens het belangrijkste werk te brengen php-it. Het drama was zodanig, meest- напред се правеше една заявка която взимаше информация после изхода от заявката се използваше да се направят други заявки като тя служеше за аргументи. Доста грозна и тлъста ситуация. Subquery а е непозната територия явно както и left join или просто не са били обмисляни нещата добре. Хванах пренаписах заявката всичко се получи доста добре и като цяло натоварването падна с около 200% за същата част от кода.

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

Versterkt door Zemanta

2 comments

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

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

Laat een antwoord achter

Uw e-mailadres zal niet worden gepubliceerd. Verplichte velden zijn gemarkeerd *

Anti SPAM *