Entwicklung scheißt

Kürzlich beschäftige ich mich hauptsächlich mit dem Code statt der Verwaltung so Dramen vor dem ich mit kodene stehen, sind viel mehr als solche Server, so habe ich beschlossen, ein paar Zeilen von Unsinn zu kritzelte, die Verwaltung zu schaffen. Begünstigt bereiten ihr Projekt zu präsentieren, die die Eröffnung etwas dramatischen Teile gezwungen

  • die erste sache, die sicher probleme der ausgrenzung von javascript - code von браузърната wartung. wie jede moderne anwendung js und unser instrument für ajax und andere dynamische Prozesse, die Interaktivität und moderne Vision übertragen und zur Verbesserung der Funktionalität. dachte, der eine menge entscheidungen als akzeptabel, mit informationen und PHP um zu überprüfen, dass die angaben gültig ist und ob alles okay ist. Ganz gebildete Entscheidung aber schließlich erscheinen mehr vorzeigbar Version. HTML gespielt werden, wenn es in NoScript kommt. Ich denke, es ist die eleganteste Lösung.
<noscript>
<meta http-equiv="refresh" content="0;URL=./nojs.html" />
</noscript>

Im Allgemeinen ist die Situation trivial, wenn wir JS Unterstützung stoppen wird umgeleitet nojs.html. Einfache und sehr effektive Lösung

  • php multhithreading – viele nishkovosta ist etwas ganz nützlich für die Prozessoren mit mehr Kern (dass der Single-Core nicht, ist nicht in Ordnung, aber viele Dinge Kernsysteme sind ein weiteres Bier). Unsere Software hat einen Teil, der mit das Sammeln von Informationen aus anderen Angebote API – sie und ich importva in unserer Datenbank Danny. общовзето keine herausforderung, außer dass es php cli modus wieder mit multhithreading an, weil dieser prozess ist groß, und es ist notwendig, um атоматизиран zu jemanden zu machen, mit der hand. Hier wurde ein Drama mit fokrvaneto Prozessen verbunden und fließen nicht nur erstellen Kind-Prozess-und ein Skript, das wartete auf priklyuchabota einen neuen zu erstellen. Dumme, die Multiprozessing Idee getötet, was tatsächlich das Verhalten und nicht multhithreading aber diese sind Details. Die meisten vorbringen & nach dem Versuch, die ihre Arbeit Skript fortsetzen bedeutet noch keine Verhaltensänderung erforderlich und die Standardausgabe des Skripts umgeleitet werden – in meinem Fall auch zu /dev / null 🙂 Schließlich sah die Struktur dieses Teils des Codes wie
$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 wieder e trivial. die produktivität war sehr beeindruckt. zwischen den prozessen und hat ca. 50 kind - prozess und die странба aus 7800+ dann fügt mysql über 30-40 sekunden. Eine Maschine ist extrem schwach, weil wir Test vor der Anwendung varar real zu erhöhen.

  • mysql querys – Ich wurde von einer großen Torheit schockiert. Es gab einen Code, der aus 4-5 weitere anfragen an die datenbank, anstatt ein fetter sql - abfrage und dann die wichtigste arbeit nach php -. das drama war ein, die- zunächst einen Antrag, die Informationen dann das Ergebnis der Anwendung vorgenommen wurden, werden verwendet, um andere Anforderungen machen es als Argumente bedient. Ziemlich hässlich und Fett Situation. Subquery aber anscheinend unbekanntes Territorium und links kommen oder einfach nicht die Dinge gut in Betracht gezogen worden,. Gefangen Anfrage umschrieb alles war ziemlich cool und die ganze Last fiel von über 200% für den gleichen teil des codes.

In der Regel sind diese Dinge in letzter Zeit, dass zaniamvame ist, und ich kann nicht sagen, es ist langweilig, aber manchmal durch neobmislyani verschiedene Teile des Codes erstaunt, die repariert werden muss und die sterashtnoto ist, dass oft meine 😆

zemanta ausgebaut.

2 Kommentare

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

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

Hinterlasse eine Antwort

Deine Email-Adresse wird nicht veröffentlicht. erforderliche Felder sind markiert *

Anti-Spam *