На данный момент работаю над интеграцией
Gearman в Magento. Для создания child-процессов использую
PCNTL PHP extension. Все шло гладко, но при тестировании я столкнулся с ошибкой "SQLSTATE[HY000]: General error: 2006 MySQL server has gone away". Проблема в том что при инициализации Magento приложения DB connections кешируются в Mage_Core_Model_Resource::$_connections и будут использоваться для всех форков родительского скрипта. Решение проблемы очень простое –– в дочернем скрипте необходимо удалить 'core/resource' из реестра:
/**
* Reset DB connections for preventing "SQLSTATE[HY000]: General error: 2006 MySQL server has gone away"
*
* @return $this
*/
protected function _resetDbConnections()
{
Mage::unregister('_singleton/core/resource');
return $this;
}
Читать далее