розвиток Шіц

Нещодавно я маю справу головним чином з кодом, а не з адміністрацією, щоб драма, я стою з kodene набагато більше, ніж сервера такі, тому я вирішив просто Писанина вниз кілька рядків про фігня, що мені вдалося отримати їх. Важко отримати готові представити ваш проект, що родом з силою відкриття драматичної частини

  • Първото нещо което което със сигурност щеше да създаде проблеми е изключването на javascript от браузърната поддръжка. Както всяка модерна апликация така и нашия инструмент използва доста JS за AJAX і інші динамічні процеси, що передавати інтерактивність і сучасного бачення і покращує функціональність. Ми думали про багато рішень, як найбільш прийнятні було cookie інформацію і потім PHP Щоб перевірити, чи інформація є дійсним, і якщо все OK. Досить грамотних рішення, але нарешті з'явиться ще більш гідний версія. HTML бути реалізовані в noscript. Я думаю, що це найбільш елегантне рішення.
<noscript>
<meta http-equiv="refresh" content="0;URL=./nojs.html" />
</noscript>

В основному ситуація є тривіальним, якщо ми перестанемо JS підтримки буде перенаправлено до URnojs.html. Прості і водночас ефективні рішення

  • PHP multhithreading – дуже niškovosta за тільки те, що дуже корисно для процесорів з більше ядро (не те в ednoâdreni не є ОК, але з багатьох ядерних систем є інший речей пива). Наше програмне забезпечення має частину, яка займається збору інформації від одного API – і importva його в нашу базу даних. Obŝovzeto не виклик, крім ми реалізували php знову з multhithreading в режимі cli, тому що цей процес є досить великий і повинні бути atomatiziran за те, що хтось робить його вручну. Тут була драми пов'язані з процесів fokrvaneto та не створює потоку Дочірній процес-(в) що він чекав сценарій для priklûčabota до створення нової. Stupid вона вбиває ідея про те, що поведінка фактично багатопроцесорних не на multhithreading, але ось подробиці. Спочатку ми покласти & Після суду, що означає ваш сценарій, щоб продовжити роботу, але знову було ніяких змін у поведінці є необхідним і стандартного виводу від сценарію здійснюється переспрямування – у моєму випадку OK до /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 знову є тривіальним. Виступ був дуже вражений з перериванням між процесами і так далі, я зробив про 50 дитина процес якої здійснюється поворот геть 7800+ MySQL вставки для про 30-40 СЕК. І машина є надзвичайно делікатна, тому що ми тестуємо v″r″r перш ніж зробити нанесення реального.

  • MySQL querys – Я був шокований велику дурість. Існував код, який зробив 4-5 непотрібних запитів до бази даних, Замість того щоб використовувати sql запит і потім жиру головного робота це php-it. Драма була такою, Більшість- наступним був запит, який взяв інформацію з результатів запиту потім використовується щоб інші прохання, оскільки вона служила для аргументів. Ситуація досить потворне і жиру. Підзапит і мабуть незнайомій території і ліву об'єднання або просто не були відведеної речі добре. Я отримав все, що я переписав застосування робота досить добре і навантаження як весь знизився на про 200% за цей же частина коду.

Загалом, ці речі, які останнім часом zaniamvame, і я не можу сказати, що це нудно, але іноді я вражений neobmislâni Різне шматки коду, який потрібно виправити, і на steraŝnoto є те, що ви часто мої 😆

Посилюється Zemanta

2 comments

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

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

залишити коментар

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

Захист від спаму *