Pull to refresh
49
0
Павел Болдин @davinchi

User

Send message

Медленные и/или ресурсоёмкие задачи в коде: отложенные задания, очереди, задачи с ручной обработкой

Reading time2 min
Views4.4K
Публикую по просьбе eugenioz.

При работе больших Web проектов бывают такие задачи, выполнение которых не является необходимым прямо сейчас, однако действия критические и выполнить их обязательно. Такие действия можно проводить прямо в коде и при неудачной попытке повторять. Но, на мой взгляд, подобное лучше сразу выполнять вне основного кода задачи: этим разгружается код и достигается однообразие выполнения.

Общим подходом здесь является создание очередей выполнение и отложенных заданий. Основные примеры: пересылка/верификация данных у сторонних сайтов; передача данных от реселлерской панели на основной сайт; передача заданий, которые не могут быть выполнены автоматически, на ручную обработку.

В качестве средства распределения задач предлагаю вашему вниманию PHP-класс Tasks.

Код класса
Читать дальше →
Total votes 30: ↑17 and ↓13+4
Comments96

Ловля бага #52001 в PHP 5.3: указатели и неициализированные переменные

Reading time2 min
Views1.1K
По следам недавно найденного tvv'ом бага.

При выполнении следующего кода в PHP версий 5.3.0-5.3.2 результат превосходил все ожидания.

<?php
f(0, $$var);
$x = 1;
$y = 2;
echo $x;
function f($a, $b) {};


В результате выводилось '2'. Мне удалось найти багу и поправить её: #52001. Коротко: затирался указатель на специльную переменную-затычку для неинициализированных переменных, через которую и создаются все CV переменные в PHP.

Читать дальше →
Total votes 168: ↑157 and ↓11+146
Comments52

Information

Rating
Does not participate
Location
Россия
Date of birth
Registered
Activity