Работает ли gearmand с libdrizzle, когда mysql-database некоторое время не работает?
Используйте-Case:
- Gearmand полностью работоспособен с libdrizzle в качестве персистентного уровня к базе данных mysql
- Дождевое соединение разрывается (например, база данных gearmand блокируется на несколько минут во время ночных операций резервного копирования, или происходит сбой сервера mysql или проблемы с сетью на сервере базы данных).
Вопрос:
Работает ли gearmand без упорства в этот момент (MySQL) и наверстывает упущенное позже?
1 ответ
Решение
Ответ
Нет.
подробности
- Debian 6
- gearmand 1.1.8 (через https://launchpad.net/gearmand)
- ровно 5000 рабочих мест будет создано с помощью doBackground
- сохранить рабочие места в MySQL
/usr/local/sbin/gearmand -q mysql --mysql-user user1 --mysql-пароль pass1 --mysql-db gearmand
Сценарий № 1
Сценарий:
- Включить блокировку READ для таблицы очереди gearman
Результат:
- Сценарий, который создает фоновые задачи, приостановлен.
- После снятия блокировки чтения сценарий продолжается и успешно создает все 5000 заданий.
- Примечание: я только что проверил блокировку на несколько секунд. Сценарий может произойти сбой из-за тайм-аута.
Сценарий № 2
Сценарий:
- Остановите весь экземпляр сервера mysql (с очередью gearman)
Результат:
- Без mysqld рабочие места не могут быть созданы.
- Создано 3974 рабочих места из 5000.
выход редуктора:
Ошибка mysql_stmt_prepare: не удается подключиться к локальному серверу MySQL через сокет X
Вывод PHP-скрипта:
Предупреждение PHP: GearmanClient::doBackground(): gearman_client_run_tasks:QUEUE_ERROR:QUEUE_ERROR
К сожалению, в моих тестовых сценариях механизм перестает работать, если уровень персистентности mysql недоступен.