开发狗屎

最近我的工作主要是用代码,不用管理,所以花岗岩其直与codene更多的服务器,例, 所以我决定打几线的胡说八道,我是内容. 不断地准备准备其项目的演示,其中有几开幕戏剧性的部分

  • Първото нещо което което със сигурност щеше да създаде проблеми е изключването на javascript от браузърната поддръжка. Както всяка модерна апликация така и нашия инструмент използва доста JS за 阿贾克斯 和其他动态进程,传达互动性和改善现代视野和功能. 我们认为,非常方案作为最可接受的,是与饼干的信息,然后 PHP 确保信息是正确的,一切都是为了. 非常好的决定,但是最终仍然有超过一个不错的选择. Html 该怎么做如果他们进入计算机. 在我看来,这是最优雅的解决方案.
<noscript>
<meta http-equiv="refresh" content="0;URL=./nojs.html" />
</noscript>

在一般情况下,这种情况是微不足道的如果我们停止支持JS将重定向到nojs.html. 简单和非常有效的解决方案

  • Php multhithreading – 非常nishkovosta的东西非常有用的处理更多的核心 (没有样本中的顺序,但当多的核系统和其他事项外,啤酒). 我们的软件有一个部收集信息,从其他 API – 和它的进口,然后在我们的数据库. Obovata一般不是一个问题除外,它是由不少于在php multhithreading在cli模式,因为这个过程dosatachno大以及需要自动化,重要的是knalga有人做手工. 有戏剧相关forunato过程和流离创造 孩子的过程-和那个脚本ishakpasa到prikluchenia创建一个新的. 愚蠢的想法ubiwise多处理这实际上是一个行为和不multhithreading但这是细节. 第一个地方 & 之后的过程,这意味着继续工作,但剧本是仍然没有改变行为的需要和标准输出脚本重定向 – 在我的情况下,最好是 /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);
}

Primercheto再次微不足道. От към производителност бях силно впечетлен със прекъсвани между вдигането на процесите и прочие направих около 50 child process-a които своя странба направиха 7800+ mysql inserts за около 30-40 сек. А машината е крайно хилава понеже ни е тестов върър преди да вдигнем приложението на реалния.

  • Mysql querysбях шокиран от една велика глупост. Имаше един код който правеше 4-5 излишни заявки към базата данни, вместо да се използва едно по тлъсто sql query и после основната работа да я отнесе php-то. Драмата беше такава, 大多数- 进一步提出请求,要求提供的信息,然后查询结果被用作其他调查作为它持续的参数. 很丑陋和肥胖的情况. 查询 但是,这是一个未知的领域,可能是为离开加入,或根本没有almissani一切都很好. 我抓住了penapisan查询,它工作得很好并作为一项规则,载下降了约 200% 在同一段代码.

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

通过增强Zemanta

2 评论

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

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

发表评论

您的电子邮件地址不会被公开. 必需的地方已做标记 *

反垃圾邮件 *