Показаны сообщения с ярлыком gearman. Показать все сообщения
Показаны сообщения с ярлыком gearman. Показать все сообщения

вторник, 13 января 2015 г.

Установка Gearman на Ubuntu

Проблема:

Старые версии Ubuntu не содеждат последние Gearman библиотеки. Если вы попробуете установить PHP расширение для Gearman на Ubuntu, то получите ошибку. Далее приведены шаги по установке Gearman библиотех и PHP расширения на Ubuntu 10.04 LTS и следующие версии.

Добавляем PPA репозиторий для получения последней версии libgearman:

$ sudo apt-add-repository ppa:gearman-developers
$ sudo apt-get update
$ sudo apt-get install libgearman7 libgearman-dev

Устанавливаем Job Server:

$ sudo apt-get install gearman-job-server

Устанавливаем PHP расширение с помощью PECL:

$ sudo pecl install gearman

Активируем PHP расширение:

$ echo "extension=gearman.so" | sudo tee /etc/php5/conf.d/gearman.ini

Тестируем:

Все готово для тестирования. Для этих целей можно использовать пример с официального сайта Gearman:
http://gearman.org/examples/reverse/
Читать далее

понедельник, 15 декабря 2014 г.

Magento: Как очистить DB Connections при форке процесса

На данный момент работаю над интеграцией 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;
}

Читать далее