Шиц развития

В последнее время я занимаюсь в основном с кодом вместо администрации так драмами, перед которым я стою с kodene гораздо больше, чем такой сервер, поэтому я решил набросал несколько строк нонсенс, что удалось создать. Boosted готовятся представить свой проект, который вынудил открытие несколько драматических частей

  • Первая вещь, которая несомненно будет проблематичным является исключение javascript путем поддержки браузера. Как любой современный приложение и наш инструмент использует много JS АЯКС и другие динамические процессы, которые передают интерактивность и современное видение и улучшить функциональность. Мы много думали о том, чтобы наиболее приемлемым был с информацией печенья, а затем PHP чтобы проверить, является ли информация действительна, и если все хорошо. Очень грамотные решение, но, наконец, появляются более презентабельный версию. HTML будет играть, если он приходит в NoScript. Я думаю, что это самое элегантное решение.
<noscript>
<meta http-equiv="refresh" content="0;URL=./nojs.html" />
</noscript>

Как правило, ситуация тривиальна, если мы перестанем поддержка JS будет перенаправлен на nojs.html. Простой и очень эффективное решение

  • PHP multhithreading – многие nishkovosta что-то весьма полезно для процессоров с большим ядром (не то, что на одноядерном не в порядке, но многие вещи ядерные системы являются еще одним пиво). Наше программное обеспечение имеет часть, которая касается сбора информации от других API – и importva его в нашей базе данных. Obŝovzeto не проблема за исключением, что мы реализовали php снова с multhithreading в режиме cli, потому что этот процесс является достаточно большой и должны быть atomatiziran за то, что кто-то делает это вручную. Здесь был драматический связанные с fokrvaneto процессов и не создавать поток дочерний процесс-и сценарий, который ждал, чтобы priklyuchabota создать новую. Глупо, что убил многопроцессорной представление о том, что на самом деле поведение и не multhithreading, но это детали. Большинство выдвинутые & после того, как судебный процесс, который означает, чтобы продолжить свою работу сценария пока никаких изменений в поведении, необходимых и стандартный вывод сценария будет перенаправлен – в моем случае, как хорошо /DEV / нуль 🙂 Наконец, структура этой части кода выглядел следующим образом
$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 снова е тривиальным. От до спектакля я был очень впечатлен перемежаются между подъемным процессов и так же о 50 процесс-ребенок, который сделал свой stranba 7800+ MySQL вставляет о 30-40 шведских крон. Машина очень слаба, потому что мы varar тест перед нанесением, чтобы поднять реальный.

  • MySQL querys – Я был в шоке от большой глупостью. Был код, который сделал 4-5 ненужные запросы к базе данных, вместо того, чтобы использовать более плодотворный запрос SQL, а затем основную работу, чтобы принести PHP-это. Драма была такая, наиболее- сначала сделал запрос, что информация затем принял результат применения используется для других запросов он служил в качестве аргументов. Довольно некрасиво и жира ситуация. Вложенный запрос но, видимо, незнакомой территории и левое соединение или просто не рассматривались вещи хорошо. Пойманный запрос переписал все было довольно прохладно, и вся нагрузка упала примерно 200% за тот же кусок кода.

В общем эти вещи, которые в последнее время является zaniamvame и я не могу сказать, что это скучно, но иногда я поражен neobmislâni Разное куски кода, который вам нужно исправить и steraŝnoto является то, что вы часто мои 😆

Поддерживая Zemanta

2 Комментарии

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

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

оставьте ответ

Ваш электронный адрес не будет опубликован. Обязательные поля помечены *

анти СПАМ *