SlideShare a Scribd company logo
1 of 57
Highload и очереди задач на примере PHP +
Gearman + Yii2
Спикер: Антон Довгоброд
● Асинхронность в веб-приложениях.
● Систему очередей Gearman.
● Пример Реализации c использование Yii2 +
Gearman.
Асинхронность в веб-приложениях
Идет загрузка страницы ...
Enter Task1 Task2 Task N End
Асинхронность в веб-приложениях
Enter Task1
Task2
Task N End
Асинхронность в веб-приложениях
0
время
кол-во
задач
Асинхронность в веб-приложениях
Асинхронность - что это ?
Асинхронность в веб-приложениях
Enter Task1
Task2
Task N End
Асинхронность в веб-приложениях
Асинхронность :
- Клиентская
- Серверная
Асинхронность в веб-приложениях
Асинхронность в веб-приложениях
Клиентская асинхронность
http://something.dev
Some Content 1
Some Content 2
Loading...
Some Content N
Клиентская асинхронность
Клиентская асинхронность
Недостатки:
1. Пользователь все так же ждет ответа
2. Зависим от пользователя и его интернет
соединения
3. Растет количество проверок, растет количество JS
кода, растет количество потенциально уязвимых
мест
4. Растет нагрузка на клиентскую часть
Клиентская асинхронность
Серверная асинхронность
Серверная асинхронность
Серверная асинхронность
http://something.dev
Some Content 1
Some Content 2
Content will be
loaded later, you
are free :-)
Some Content N
Серверная асинхронность
Отложенное выполнение
● Отправка почты
● Обработка изображений и прочих медиа
● Статистика
● Связь с API (синхронизация данных)
Серверная асинхронность
PHP и варианты
● fastcgi_finish_request()
Серверная асинхронность
PHP и варианты
● fastcgi_finish_request()
● exec("/usr/bin/php /var/www/script.php > /dev/null &");
Серверная асинхронность
PHP и варианты
● fastcgi_finish_request()
● exec("/usr/bin/php /var/www/script.php > /dev/null &");
● PCNTL (выполнение кода в отдельном процессе)
Серверная асинхронность
PHP и варианты
● fastcgi_finish_request()
● exec("/usr/bin/php /var/www/script.php > /dev/null &");
● PCNTL (выполнение кода в отдельном процессе)
● Использование Очередей
Система очередей Gearman.
Очередь ?
Система очередей Gearman.
Системы очередей:
Celery (http://www.celeryproject.org/)
RabbitMQ (http://www.rabbitmq.com/)
Zend Server Job Queue (http://www.zend.com/)
ZeroMQ (http://www.zeromq.org/)
BeanstalkdPeafowl,
StarlingApache
ActiveMQand.
Система очередей Gearman.
Почему Gearman ?
Система очередей Gearman.
возможности gearman:
● Open Source
● Simple & Fast (rewritten in C)
● Support a variety of languages : build Worker in Python, Client in PHP
● Flexible
● Load Balance
● Failover
Система очередей Gearman.
PHP Client1
Job Server 1
Worker 1
Connect, submit a job
Send command to
wakу worker Up
Ask For Jobs
Система очередей Gearman.
PHP Client1
Job Server 1
Job Server 2
PHP Client2
PHP Client3
PHP Client4
PHP Client5
Worker 1
Worker 2
Worker 3
Система очередей Gearman.
Простой пример:
Система очередей Gearman.
Система очередей Gearman.Система очередей Gearman.
php worker.php
Система очередей Gearman.
Система очередей Gearman.
php client.php
Система очередей Gearman.
Масштабируемость:
$gmclient-
>addServer("10.324.56.23:4730,10.324.56
.27:4321");
Система очередей Gearman.
Можно и не асинхронно:
$gmclient->do("reverse", "this is a test");
Система очередей Gearman.
Приоритеты:
$client->doHighBackground ("reverse", "this is
a test");
$client->doLowBackground ("reverse", "this is a
test");
Система очередей Gearman.
Установка Gearman:
1. Gearman Server
apt-get install gearman-job-server
Но лучше перестраховаться :
Система очередей Gearman.
Установка Gearman:
1. Gearman Client
Система очередей Gearman.
Установка Gearman, путь Джедая:
Система очередей Gearman.
Мониторинг состояния:
1. Проверяем что сервер и php ext работают:
Система очередей Gearman.
Мониторинг состояния:
1. Проверяем что сервер и php ext работают
1. Мониторинг состояния
gearadmin --status
● Function Name
● Number in queue
● Number of jobs running
Систему очередей Gearman.
Мониторинг состояния в UI:
1. Gearman Monitor
https://github.com/yugene/Gearman-Monitor
Систему очередей Gearman.
Мониторинг состояния в UI:
1. Gearman UI
https://github.com/gaspaio/gearmanui
Систему очередей Gearman.
Потенциальные узкие места:
1. Неожиданное завершение работы задачи
2. Неожиданное завершение работы Worker процесса
3. Выход из строя Job Server
4. при изменении кода Worker-а сам Worker не будет изменен
Систему очередей Gearman.
Потенциальные узкие места:
1. Неожиданное завершение работы задачи
- Проверка всех уровней эксепшнов
- Код Задач должен быть хорошо оттестирован
- Хранение статуса операций, необходимых задачам в отдельном месте
1. Неожиданное завершение работы Worker процесса
- Использование утилиты, управляющей процессами (хороший пример
Supervisor)
[program:worker]
command=/usr/bin/php /var/www/worker.php
process_name=%(program_name)s_%(process_num)02d
numprocs=10
directory=/var/www/worker
stdout_logfile=/var/log/worker.log
autostart=true
autorestart=true
user=www-data
stopsignal=KILL
Систему очередей Gearman.
Supervisor
[program:worker]
command=/usr/bin/php
/var/www/worker.php
process_name=%(program_name)s_%(proce
ss_num)02d
numprocs=10
directory=/var/www/worker
stdout_logfile=/var/log/worker.log
autostart=true
autorestart=true
user=www-data
stopsignal=KILL
Систему очередей Gearman.
Потенциальные узкие места:
1. Неожиданное завершение работы задачи
- Проверка всех уровней эксепшнов
- Код Задач должен быть хорошо оттестирован
- Хранение статуса операций, необходимых задачам в отдельном месте
1. Неожиданное завершение работы Worker процесса
- Использование утилиты, управляющей процессами (хороший пример
Supervisor)
1. Выход из строя Job Server
Мониторинг Job Server
Выбирать хранилище очередей не по умолчанию (mysql, sqllight, memcached, etc.)
1. при изменении кода воркера сам воркер не будет изменен
Использование скриптов автодеплоя в случае обновления кода воркера
Систему очередей Gearman.
Как не должно быть:
Пример Реализации c использование
Yii2 + Gearman.
Пример Реализации c
использование Yii2 + Gearman.
Пример Реализации c использование
Yii2 + Gearman.
Архитектура Задач, архитектура на первом месте!
Пример Реализации c использование
Yii2 + Gearman.
Необходимые шаги:
1. Composer Yii2 extention
2. Add rows in config
3. write your worker
4. That’s it :-)
Пример Реализации c использование
Yii2 + Gearman.
Устанавливаем дополнения:
1. Filsh
https://github.com/Filsh/yii2-gearman
Single worker , used :
https://github.com/sinergi/gearman
2. OR, Shakura
https://github.com/shakura/yii2-gearman
(Multiple workers)
Пример Реализации c использование
Yii2 + Gearman.
Config:
Пример Реализации c использование
Yii2 + Gearman.
Job:
Пример Реализации c использование
Yii2 + Gearman.
Client:
Ссылки:
1. http://ruhighload.com/
2. http://supervisord.org/
3. http://gearman.org/
4. http://php.net/manual/en/book.gearman.php
5. https://gist.github.com/resscode/f118ca2f0233aebce3e5
6. https://github.com/gaspaio/gearmanui
7. https://github.com/Filsh/yii2-gearman
8. https://github.com/shakura/yii2-gearman
9. https://github.com/sinergi/gearman
Вопросы ?)
Всем Спасибо :-)
Вопросы и предложения можно оставлять:
anton.dovgobrod@dataart.com

More Related Content

What's hot

Профилирование кода на C/C++ в *nix системах
Профилирование кода на C/C++ в *nix системахПрофилирование кода на C/C++ в *nix системах
Профилирование кода на C/C++ в *nix системахAleksander Alekseev
 
Как мы приручили демона или процесс тестирования демонов в Badoo
Как мы приручили демона или процесс тестирования демонов в BadooКак мы приручили демона или процесс тестирования демонов в Badoo
Как мы приручили демона или процесс тестирования демонов в BadooSQALab
 
Bdd in python - Кирилл Борисов, PyCon RU 2014
Bdd in python - Кирилл Борисов, PyCon RU 2014Bdd in python - Кирилл Борисов, PyCon RU 2014
Bdd in python - Кирилл Борисов, PyCon RU 2014it-people
 
Применение языка Go в инфраструктурных проектах
Применение языка Go в инфраструктурных проектахПрименение языка Go в инфраструктурных проектах
Применение языка Go в инфраструктурных проектахAlex Chistyakov
 
Rust - GDG DevFest 2016 Nizhny Novgorod
Rust - GDG DevFest 2016 Nizhny NovgorodRust - GDG DevFest 2016 Nizhny Novgorod
Rust - GDG DevFest 2016 Nizhny NovgorodNikita Baksalyar
 
Rust - GDG DevFest Siberia 2016
Rust - GDG DevFest Siberia 2016Rust - GDG DevFest Siberia 2016
Rust - GDG DevFest Siberia 2016Nikita Baksalyar
 
Павел Беликов, Опыт мигрирования крупного проекта с Windows-only на Linux
Павел Беликов, Опыт мигрирования крупного проекта с Windows-only на LinuxПавел Беликов, Опыт мигрирования крупного проекта с Windows-only на Linux
Павел Беликов, Опыт мигрирования крупного проекта с Windows-only на LinuxPlatonov Sergey
 
Александр Чистяков - Большой веб-проект: развитие, рост, проблемы, решения с ...
Александр Чистяков - Большой веб-проект: развитие, рост, проблемы, решения с ...Александр Чистяков - Большой веб-проект: развитие, рост, проблемы, решения с ...
Александр Чистяков - Большой веб-проект: развитие, рост, проблемы, решения с ...HappyDev
 
Big web project @happydev Omsk
Big web project @happydev OmskBig web project @happydev Omsk
Big web project @happydev OmskAlex Chistyakov
 
Управление highload-проектами 24 на 7
Управление highload-проектами 24 на 7 Управление highload-проектами 24 на 7
Управление highload-проектами 24 на 7 ADV/web-engineering
 
специализированные http-демона (Сергей Боченков, Александр Панков)
специализированные http-демона (Сергей Боченков, Александр Панков)специализированные http-демона (Сергей Боченков, Александр Панков)
специализированные http-демона (Сергей Боченков, Александр Панков)Ontico
 
Как мы делаем раскладку Календаря@Mail.Ru
Как мы делаем раскладку Календаря@Mail.RuКак мы делаем раскладку Календаря@Mail.Ru
Как мы делаем раскладку Календаря@Mail.RuVladimir Rudnyh
 
Как не положить тысячи серверов с помощью системы централизованного управлени...
Как не положить тысячи серверов с помощью системы централизованного управлени...Как не положить тысячи серверов с помощью системы централизованного управлени...
Как не положить тысячи серверов с помощью системы централизованного управлени...Ontico
 
Контроль качества и сопровождение программ в реальном времени
Контроль качества и сопровождение программ в реальном времениКонтроль качества и сопровождение программ в реальном времени
Контроль качества и сопровождение программ в реальном времениSQALab
 
Jbreak 2016: Твой личный Spring Boot Starter
Jbreak 2016: Твой личный Spring Boot StarterJbreak 2016: Твой личный Spring Boot Starter
Jbreak 2016: Твой личный Spring Boot StarterAleksandr Tarasov
 
Обзор Continuous integration инструментов
Обзор Continuous integration инструментовОбзор Continuous integration инструментов
Обзор Continuous integration инструментовVitalii Morvaniuk
 
CodeFest 2014. Каплуновский Б. — Использование асинхронного I/O для снижения ...
CodeFest 2014. Каплуновский Б. — Использование асинхронного I/O для снижения ...CodeFest 2014. Каплуновский Б. — Использование асинхронного I/O для снижения ...
CodeFest 2014. Каплуновский Б. — Использование асинхронного I/O для снижения ...CodeFest
 
Введение в maven
Введение в mavenВведение в maven
Введение в mavenDmitry Zinushin
 
My talk on HBase ops engineering at TBD Jun 2016
My talk on HBase ops engineering at TBD Jun 2016My talk on HBase ops engineering at TBD Jun 2016
My talk on HBase ops engineering at TBD Jun 2016Alex Chistyakov
 

What's hot (20)

Профилирование кода на C/C++ в *nix системах
Профилирование кода на C/C++ в *nix системахПрофилирование кода на C/C++ в *nix системах
Профилирование кода на C/C++ в *nix системах
 
Как мы приручили демона или процесс тестирования демонов в Badoo
Как мы приручили демона или процесс тестирования демонов в BadooКак мы приручили демона или процесс тестирования демонов в Badoo
Как мы приручили демона или процесс тестирования демонов в Badoo
 
Bdd in python - Кирилл Борисов, PyCon RU 2014
Bdd in python - Кирилл Борисов, PyCon RU 2014Bdd in python - Кирилл Борисов, PyCon RU 2014
Bdd in python - Кирилл Борисов, PyCon RU 2014
 
Применение языка Go в инфраструктурных проектах
Применение языка Go в инфраструктурных проектахПрименение языка Go в инфраструктурных проектах
Применение языка Go в инфраструктурных проектах
 
Rust - GDG DevFest 2016 Nizhny Novgorod
Rust - GDG DevFest 2016 Nizhny NovgorodRust - GDG DevFest 2016 Nizhny Novgorod
Rust - GDG DevFest 2016 Nizhny Novgorod
 
Rust - GDG DevFest Siberia 2016
Rust - GDG DevFest Siberia 2016Rust - GDG DevFest Siberia 2016
Rust - GDG DevFest Siberia 2016
 
Павел Беликов, Опыт мигрирования крупного проекта с Windows-only на Linux
Павел Беликов, Опыт мигрирования крупного проекта с Windows-only на LinuxПавел Беликов, Опыт мигрирования крупного проекта с Windows-only на Linux
Павел Беликов, Опыт мигрирования крупного проекта с Windows-only на Linux
 
Александр Чистяков - Большой веб-проект: развитие, рост, проблемы, решения с ...
Александр Чистяков - Большой веб-проект: развитие, рост, проблемы, решения с ...Александр Чистяков - Большой веб-проект: развитие, рост, проблемы, решения с ...
Александр Чистяков - Большой веб-проект: развитие, рост, проблемы, решения с ...
 
Big web project @happydev Omsk
Big web project @happydev OmskBig web project @happydev Omsk
Big web project @happydev Omsk
 
Управление highload-проектами 24 на 7
Управление highload-проектами 24 на 7 Управление highload-проектами 24 на 7
Управление highload-проектами 24 на 7
 
специализированные http-демона (Сергей Боченков, Александр Панков)
специализированные http-демона (Сергей Боченков, Александр Панков)специализированные http-демона (Сергей Боченков, Александр Панков)
специализированные http-демона (Сергей Боченков, Александр Панков)
 
Как мы делаем раскладку Календаря@Mail.Ru
Как мы делаем раскладку Календаря@Mail.RuКак мы делаем раскладку Календаря@Mail.Ru
Как мы делаем раскладку Календаря@Mail.Ru
 
Как не положить тысячи серверов с помощью системы централизованного управлени...
Как не положить тысячи серверов с помощью системы централизованного управлени...Как не положить тысячи серверов с помощью системы централизованного управлени...
Как не положить тысячи серверов с помощью системы централизованного управлени...
 
Контроль качества и сопровождение программ в реальном времени
Контроль качества и сопровождение программ в реальном времениКонтроль качества и сопровождение программ в реальном времени
Контроль качества и сопровождение программ в реальном времени
 
Jbreak 2016: Твой личный Spring Boot Starter
Jbreak 2016: Твой личный Spring Boot StarterJbreak 2016: Твой личный Spring Boot Starter
Jbreak 2016: Твой личный Spring Boot Starter
 
Обзор Continuous integration инструментов
Обзор Continuous integration инструментовОбзор Continuous integration инструментов
Обзор Continuous integration инструментов
 
CodeFest 2014. Каплуновский Б. — Использование асинхронного I/O для снижения ...
CodeFest 2014. Каплуновский Б. — Использование асинхронного I/O для снижения ...CodeFest 2014. Каплуновский Б. — Использование асинхронного I/O для снижения ...
CodeFest 2014. Каплуновский Б. — Использование асинхронного I/O для снижения ...
 
Введение в maven
Введение в mavenВведение в maven
Введение в maven
 
Php and frameworks
Php and frameworksPhp and frameworks
Php and frameworks
 
My talk on HBase ops engineering at TBD Jun 2016
My talk on HBase ops engineering at TBD Jun 2016My talk on HBase ops engineering at TBD Jun 2016
My talk on HBase ops engineering at TBD Jun 2016
 

Viewers also liked

Куда катится PHP, а также про Yii и другие фреймворки / Александр Макаров (St...
Куда катится PHP, а также про Yii и другие фреймворки / Александр Макаров (St...Куда катится PHP, а также про Yii и другие фреймворки / Александр Макаров (St...
Куда катится PHP, а также про Yii и другие фреймворки / Александр Макаров (St...Ontico
 
Обработка дедлоков в MySql
Обработка дедлоков в MySqlОбработка дедлоков в MySql
Обработка дедлоков в MySqlspariev
 
Anemic Domain Model - антипаттерн или SOLID?
Anemic Domain Model - антипаттерн или SOLID?Anemic Domain Model - антипаттерн или SOLID?
Anemic Domain Model - антипаттерн или SOLID?GoSharp
 
ByndyuSoft 1 год глазами программиста
ByndyuSoft 1 год глазами программистаByndyuSoft 1 год глазами программиста
ByndyuSoft 1 год глазами программистаRuslan Safin
 
Компания мечты своими руками, Уфа,
Компания мечты своими руками, Уфа, Компания мечты своими руками, Уфа,
Компания мечты своими руками, Уфа, Alexander Byndyu
 
PHP, RabbitMQ, and You
PHP, RabbitMQ, and YouPHP, RabbitMQ, and You
PHP, RabbitMQ, and YouJason Lotito
 
Карьера в IT, 27-02-2013
Карьера в IT, 27-02-2013Карьера в IT, 27-02-2013
Карьера в IT, 27-02-2013Alexander Byndyu
 
DDD - модель вместо требований
DDD - модель вместо требованийDDD - модель вместо требований
DDD - модель вместо требованийSQALab
 
Introducing Practical RabbitMQ (php[tek] 2016 - Tutorial)
Introducing Practical RabbitMQ (php[tek] 2016 - Tutorial)Introducing Practical RabbitMQ (php[tek] 2016 - Tutorial)
Introducing Practical RabbitMQ (php[tek] 2016 - Tutorial)James Titcumb
 
Применение DDD подхода в Symfony 2 приложении
Применение DDD подхода в Symfony 2 приложенииПрименение DDD подхода в Symfony 2 приложении
Применение DDD подхода в Symfony 2 приложенииАнтон Шабовта
 
Integrating RabbitMQ with PHP
Integrating RabbitMQ with PHPIntegrating RabbitMQ with PHP
Integrating RabbitMQ with PHPAlvaro Videla
 
Distributed Queue System using Gearman
Distributed Queue System using GearmanDistributed Queue System using Gearman
Distributed Queue System using GearmanEric Cho
 

Viewers also liked (15)

Куда катится PHP, а также про Yii и другие фреймворки / Александр Макаров (St...
Куда катится PHP, а также про Yii и другие фреймворки / Александр Макаров (St...Куда катится PHP, а также про Yii и другие фреймворки / Александр Макаров (St...
Куда катится PHP, а также про Yii и другие фреймворки / Александр Макаров (St...
 
Обработка дедлоков в MySql
Обработка дедлоков в MySqlОбработка дедлоков в MySql
Обработка дедлоков в MySql
 
Anemic Domain Model - антипаттерн или SOLID?
Anemic Domain Model - антипаттерн или SOLID?Anemic Domain Model - антипаттерн или SOLID?
Anemic Domain Model - антипаттерн или SOLID?
 
ByndyuSoft 1 год глазами программиста
ByndyuSoft 1 год глазами программистаByndyuSoft 1 год глазами программиста
ByndyuSoft 1 год глазами программиста
 
Компания мечты своими руками, Уфа,
Компания мечты своими руками, Уфа, Компания мечты своими руками, Уфа,
Компания мечты своими руками, Уфа,
 
PHP, RabbitMQ, and You
PHP, RabbitMQ, and YouPHP, RabbitMQ, and You
PHP, RabbitMQ, and You
 
Карьера в IT, 27-02-2013
Карьера в IT, 27-02-2013Карьера в IT, 27-02-2013
Карьера в IT, 27-02-2013
 
DDD - модель вместо требований
DDD - модель вместо требованийDDD - модель вместо требований
DDD - модель вместо требований
 
Introducing Practical RabbitMQ (php[tek] 2016 - Tutorial)
Introducing Practical RabbitMQ (php[tek] 2016 - Tutorial)Introducing Practical RabbitMQ (php[tek] 2016 - Tutorial)
Introducing Practical RabbitMQ (php[tek] 2016 - Tutorial)
 
Palestra yii2
Palestra yii2Palestra yii2
Palestra yii2
 
Применение DDD подхода в Symfony 2 приложении
Применение DDD подхода в Symfony 2 приложенииПрименение DDD подхода в Symfony 2 приложении
Применение DDD подхода в Symfony 2 приложении
 
DDD Workshop
DDD WorkshopDDD Workshop
DDD Workshop
 
Integrating RabbitMQ with PHP
Integrating RabbitMQ with PHPIntegrating RabbitMQ with PHP
Integrating RabbitMQ with PHP
 
Gearman for MySQL
Gearman for MySQLGearman for MySQL
Gearman for MySQL
 
Distributed Queue System using Gearman
Distributed Queue System using GearmanDistributed Queue System using Gearman
Distributed Queue System using Gearman
 

Similar to Антон Довгоброд: Highload и очереди задач на примере PHP + Gearman + Yii2

#11 "Отзывчивый UI без блокировки Event Loop" Денис Речкунов
#11 "Отзывчивый UI без блокировки Event Loop" Денис Речкунов#11 "Отзывчивый UI без блокировки Event Loop" Денис Речкунов
#11 "Отзывчивый UI без блокировки Event Loop" Денис РечкуновJSib
 
Zherdev icinga 20120423
Zherdev icinga 20120423Zherdev icinga 20120423
Zherdev icinga 20120423kuchinskaya
 
Организация процесса регулярной обработки больших объемов данных
Организация процесса регулярной обработки больших объемов данныхОрганизация процесса регулярной обработки больших объемов данных
Организация процесса регулярной обработки больших объемов данныхCodeFest
 
ZFConf 2011: Разделение труда: Организация многозадачной, распределенной сист...
ZFConf 2011: Разделение труда: Организация многозадачной, распределенной сист...ZFConf 2011: Разделение труда: Организация многозадачной, распределенной сист...
ZFConf 2011: Разделение труда: Организация многозадачной, распределенной сист...ZFConf Conference
 
Batch processing in rails
Batch processing in railsBatch processing in rails
Batch processing in railssergeymoiseev
 
20090720 hpc exercise1
20090720 hpc exercise120090720 hpc exercise1
20090720 hpc exercise1Michael Karpov
 
Grail: шаги для ваших Python-тестов
Grail: шаги для ваших Python-тестовGrail: шаги для ваших Python-тестов
Grail: шаги для ваших Python-тестовCodeFest
 
Grail - CodeFest'2015
Grail - CodeFest'2015Grail - CodeFest'2015
Grail - CodeFest'2015Igor Khrol
 
Движение по хрупкому дну / Сергей Караткевич (servers.ru)
Движение по хрупкому дну / Сергей Караткевич (servers.ru)Движение по хрупкому дну / Сергей Караткевич (servers.ru)
Движение по хрупкому дну / Сергей Караткевич (servers.ru)Ontico
 
Григорий Демченко — Асинхронное программирование и сопрограммы
Григорий Демченко — Асинхронное программирование и сопрограммыГригорий Демченко — Асинхронное программирование и сопрограммы
Григорий Демченко — Асинхронное программирование и сопрограммыYandex
 
Илья Евлампиев - Нагрузочное тестирование веб-приложений с помощью The Grinder
Илья Евлампиев - Нагрузочное тестирование веб-приложений с помощью The GrinderИлья Евлампиев - Нагрузочное тестирование веб-приложений с помощью The Grinder
Илья Евлампиев - Нагрузочное тестирование веб-приложений с помощью The GrinderSQALab
 
Техники пентеста для активной защиты - Николай Овчарук
Техники пентеста для активной защиты - Николай ОвчарукТехники пентеста для активной защиты - Николай Овчарук
Техники пентеста для активной защиты - Николай ОвчарукHackIT Ukraine
 
Опыт разработки и тестирования RESTful JSON сервиса
Опыт разработки и тестирования RESTful JSON сервисаОпыт разработки и тестирования RESTful JSON сервиса
Опыт разработки и тестирования RESTful JSON сервисаIlya Chesnokov
 
Переезжаем с Zabbix на Prometheus / Василий Озеров (fevlake)
Переезжаем с Zabbix на Prometheus / Василий Озеров (fevlake)Переезжаем с Zabbix на Prometheus / Василий Озеров (fevlake)
Переезжаем с Zabbix на Prometheus / Василий Озеров (fevlake)Ontico
 
Реалтайм статистика скорости работы нативных и веб-приложений у реальных поль...
Реалтайм статистика скорости работы нативных и веб-приложений у реальных поль...Реалтайм статистика скорости работы нативных и веб-приложений у реальных поль...
Реалтайм статистика скорости работы нативных и веб-приложений у реальных поль...Ontico
 
Доклад Ильи Кудинова на DevConf 2013. "Организация автоматизированного тестир...
Доклад Ильи Кудинова на DevConf 2013. "Организация автоматизированного тестир...Доклад Ильи Кудинова на DevConf 2013. "Организация автоматизированного тестир...
Доклад Ильи Кудинова на DevConf 2013. "Организация автоматизированного тестир...Badoo Development
 
Павел Довгалюк, Обратная отладка
Павел Довгалюк, Обратная отладкаПавел Довгалюк, Обратная отладка
Павел Довгалюк, Обратная отладкаSergey Platonov
 
2014-10-04 02 Владислав Безверхий. Mocha - покрой frontend по полной
2014-10-04 02 Владислав Безверхий. Mocha - покрой frontend по полной2014-10-04 02 Владислав Безверхий. Mocha - покрой frontend по полной
2014-10-04 02 Владислав Безверхий. Mocha - покрой frontend по полнойОмские ИТ-субботники
 
Apache.JMeter для .NET-проектов
Apache.JMeter для .NET-проектовApache.JMeter для .NET-проектов
Apache.JMeter для .NET-проектовSQALab
 

Similar to Антон Довгоброд: Highload и очереди задач на примере PHP + Gearman + Yii2 (20)

#11 "Отзывчивый UI без блокировки Event Loop" Денис Речкунов
#11 "Отзывчивый UI без блокировки Event Loop" Денис Речкунов#11 "Отзывчивый UI без блокировки Event Loop" Денис Речкунов
#11 "Отзывчивый UI без блокировки Event Loop" Денис Речкунов
 
Zherdev icinga 20120423
Zherdev icinga 20120423Zherdev icinga 20120423
Zherdev icinga 20120423
 
Организация процесса регулярной обработки больших объемов данных
Организация процесса регулярной обработки больших объемов данныхОрганизация процесса регулярной обработки больших объемов данных
Организация процесса регулярной обработки больших объемов данных
 
ZFConf 2011: Разделение труда: Организация многозадачной, распределенной сист...
ZFConf 2011: Разделение труда: Организация многозадачной, распределенной сист...ZFConf 2011: Разделение труда: Организация многозадачной, распределенной сист...
ZFConf 2011: Разделение труда: Организация многозадачной, распределенной сист...
 
Batch processing in rails
Batch processing in railsBatch processing in rails
Batch processing in rails
 
20090720 hpc exercise1
20090720 hpc exercise120090720 hpc exercise1
20090720 hpc exercise1
 
Use Grunt Luke
Use Grunt LukeUse Grunt Luke
Use Grunt Luke
 
Grail: шаги для ваших Python-тестов
Grail: шаги для ваших Python-тестовGrail: шаги для ваших Python-тестов
Grail: шаги для ваших Python-тестов
 
Grail - CodeFest'2015
Grail - CodeFest'2015Grail - CodeFest'2015
Grail - CodeFest'2015
 
Движение по хрупкому дну / Сергей Караткевич (servers.ru)
Движение по хрупкому дну / Сергей Караткевич (servers.ru)Движение по хрупкому дну / Сергей Караткевич (servers.ru)
Движение по хрупкому дну / Сергей Караткевич (servers.ru)
 
Григорий Демченко — Асинхронное программирование и сопрограммы
Григорий Демченко — Асинхронное программирование и сопрограммыГригорий Демченко — Асинхронное программирование и сопрограммы
Григорий Демченко — Асинхронное программирование и сопрограммы
 
Илья Евлампиев - Нагрузочное тестирование веб-приложений с помощью The Grinder
Илья Евлампиев - Нагрузочное тестирование веб-приложений с помощью The GrinderИлья Евлампиев - Нагрузочное тестирование веб-приложений с помощью The Grinder
Илья Евлампиев - Нагрузочное тестирование веб-приложений с помощью The Grinder
 
Техники пентеста для активной защиты - Николай Овчарук
Техники пентеста для активной защиты - Николай ОвчарукТехники пентеста для активной защиты - Николай Овчарук
Техники пентеста для активной защиты - Николай Овчарук
 
Опыт разработки и тестирования RESTful JSON сервиса
Опыт разработки и тестирования RESTful JSON сервисаОпыт разработки и тестирования RESTful JSON сервиса
Опыт разработки и тестирования RESTful JSON сервиса
 
Переезжаем с Zabbix на Prometheus / Василий Озеров (fevlake)
Переезжаем с Zabbix на Prometheus / Василий Озеров (fevlake)Переезжаем с Zabbix на Prometheus / Василий Озеров (fevlake)
Переезжаем с Zabbix на Prometheus / Василий Озеров (fevlake)
 
Реалтайм статистика скорости работы нативных и веб-приложений у реальных поль...
Реалтайм статистика скорости работы нативных и веб-приложений у реальных поль...Реалтайм статистика скорости работы нативных и веб-приложений у реальных поль...
Реалтайм статистика скорости работы нативных и веб-приложений у реальных поль...
 
Доклад Ильи Кудинова на DevConf 2013. "Организация автоматизированного тестир...
Доклад Ильи Кудинова на DevConf 2013. "Организация автоматизированного тестир...Доклад Ильи Кудинова на DevConf 2013. "Организация автоматизированного тестир...
Доклад Ильи Кудинова на DevConf 2013. "Организация автоматизированного тестир...
 
Павел Довгалюк, Обратная отладка
Павел Довгалюк, Обратная отладкаПавел Довгалюк, Обратная отладка
Павел Довгалюк, Обратная отладка
 
2014-10-04 02 Владислав Безверхий. Mocha - покрой frontend по полной
2014-10-04 02 Владислав Безверхий. Mocha - покрой frontend по полной2014-10-04 02 Владислав Безверхий. Mocha - покрой frontend по полной
2014-10-04 02 Владислав Безверхий. Mocha - покрой frontend по полной
 
Apache.JMeter для .NET-проектов
Apache.JMeter для .NET-проектовApache.JMeter для .NET-проектов
Apache.JMeter для .NET-проектов
 

More from Oleg Poludnenko

Дмитрий Красун: Сегодня вы уйдете с новым представлением о REST
Дмитрий Красун: Сегодня вы уйдете с новым представлением о RESTДмитрий Красун: Сегодня вы уйдете с новым представлением о REST
Дмитрий Красун: Сегодня вы уйдете с новым представлением о RESTOleg Poludnenko
 
Александр Трищенко: PHP 7 Evolution
Александр Трищенко: PHP 7 EvolutionАлександр Трищенко: PHP 7 Evolution
Александр Трищенко: PHP 7 EvolutionOleg Poludnenko
 
Иван Стеценко: ЯП Zephir. Панацея или лечение?
Иван Стеценко: ЯП Zephir. Панацея или лечение?Иван Стеценко: ЯП Zephir. Панацея или лечение?
Иван Стеценко: ЯП Zephir. Панацея или лечение?Oleg Poludnenko
 
Александр Трищенко: Phalcon framework
Александр Трищенко: Phalcon frameworkАлександр Трищенко: Phalcon framework
Александр Трищенко: Phalcon frameworkOleg Poludnenko
 
Алексей Иванкин: Highload + PHP
Алексей Иванкин: Highload + PHPАлексей Иванкин: Highload + PHP
Алексей Иванкин: Highload + PHPOleg Poludnenko
 
Алексей Рыстенко: Highload и микросервисы
Алексей Рыстенко: Highload и микросервисыАлексей Рыстенко: Highload и микросервисы
Алексей Рыстенко: Highload и микросервисыOleg Poludnenko
 
Алексей Плеханов: Новинки Laravel 5
Алексей Плеханов: Новинки Laravel 5Алексей Плеханов: Новинки Laravel 5
Алексей Плеханов: Новинки Laravel 5Oleg Poludnenko
 
Макс Волошин: Php + shell = ♥
Макс Волошин: Php + shell = ♥Макс Волошин: Php + shell = ♥
Макс Волошин: Php + shell = ♥Oleg Poludnenko
 
Дмитрий Тарасов: Google App Engine & PHP SDK
Дмитрий Тарасов: Google App Engine & PHP SDKДмитрий Тарасов: Google App Engine & PHP SDK
Дмитрий Тарасов: Google App Engine & PHP SDKOleg Poludnenko
 
Алексей Рыстенко: Continuous Integration
Алексей Рыстенко: Continuous IntegrationАлексей Рыстенко: Continuous Integration
Алексей Рыстенко: Continuous IntegrationOleg Poludnenko
 
Илья Андриенко: Вёрстка в проекте глазами “неверстальщика”
Илья Андриенко: Вёрстка в проекте глазами  “неверстальщика”Илья Андриенко: Вёрстка в проекте глазами  “неверстальщика”
Илья Андриенко: Вёрстка в проекте глазами “неверстальщика”Oleg Poludnenko
 
Алексей Плеханов: 25 причин попробовать Laravel
Алексей Плеханов: 25 причин попробовать LaravelАлексей Плеханов: 25 причин попробовать Laravel
Алексей Плеханов: 25 причин попробовать LaravelOleg Poludnenko
 

More from Oleg Poludnenko (12)

Дмитрий Красун: Сегодня вы уйдете с новым представлением о REST
Дмитрий Красун: Сегодня вы уйдете с новым представлением о RESTДмитрий Красун: Сегодня вы уйдете с новым представлением о REST
Дмитрий Красун: Сегодня вы уйдете с новым представлением о REST
 
Александр Трищенко: PHP 7 Evolution
Александр Трищенко: PHP 7 EvolutionАлександр Трищенко: PHP 7 Evolution
Александр Трищенко: PHP 7 Evolution
 
Иван Стеценко: ЯП Zephir. Панацея или лечение?
Иван Стеценко: ЯП Zephir. Панацея или лечение?Иван Стеценко: ЯП Zephir. Панацея или лечение?
Иван Стеценко: ЯП Zephir. Панацея или лечение?
 
Александр Трищенко: Phalcon framework
Александр Трищенко: Phalcon frameworkАлександр Трищенко: Phalcon framework
Александр Трищенко: Phalcon framework
 
Алексей Иванкин: Highload + PHP
Алексей Иванкин: Highload + PHPАлексей Иванкин: Highload + PHP
Алексей Иванкин: Highload + PHP
 
Алексей Рыстенко: Highload и микросервисы
Алексей Рыстенко: Highload и микросервисыАлексей Рыстенко: Highload и микросервисы
Алексей Рыстенко: Highload и микросервисы
 
Алексей Плеханов: Новинки Laravel 5
Алексей Плеханов: Новинки Laravel 5Алексей Плеханов: Новинки Laravel 5
Алексей Плеханов: Новинки Laravel 5
 
Макс Волошин: Php + shell = ♥
Макс Волошин: Php + shell = ♥Макс Волошин: Php + shell = ♥
Макс Волошин: Php + shell = ♥
 
Дмитрий Тарасов: Google App Engine & PHP SDK
Дмитрий Тарасов: Google App Engine & PHP SDKДмитрий Тарасов: Google App Engine & PHP SDK
Дмитрий Тарасов: Google App Engine & PHP SDK
 
Алексей Рыстенко: Continuous Integration
Алексей Рыстенко: Continuous IntegrationАлексей Рыстенко: Continuous Integration
Алексей Рыстенко: Continuous Integration
 
Илья Андриенко: Вёрстка в проекте глазами “неверстальщика”
Илья Андриенко: Вёрстка в проекте глазами  “неверстальщика”Илья Андриенко: Вёрстка в проекте глазами  “неверстальщика”
Илья Андриенко: Вёрстка в проекте глазами “неверстальщика”
 
Алексей Плеханов: 25 причин попробовать Laravel
Алексей Плеханов: 25 причин попробовать LaravelАлексей Плеханов: 25 причин попробовать Laravel
Алексей Плеханов: 25 причин попробовать Laravel
 

Recently uploaded (9)

Cyberprint. Dark Pink Apt Group [RU].pdf
Cyberprint. Dark Pink Apt Group [RU].pdfCyberprint. Dark Pink Apt Group [RU].pdf
Cyberprint. Dark Pink Apt Group [RU].pdf
 
СИСТЕМА ОЦЕНКИ УЯЗВИМОСТЕЙ CVSS 4.0 / CVSS v4.0 [RU].pdf
СИСТЕМА ОЦЕНКИ УЯЗВИМОСТЕЙ CVSS 4.0 / CVSS v4.0 [RU].pdfСИСТЕМА ОЦЕНКИ УЯЗВИМОСТЕЙ CVSS 4.0 / CVSS v4.0 [RU].pdf
СИСТЕМА ОЦЕНКИ УЯЗВИМОСТЕЙ CVSS 4.0 / CVSS v4.0 [RU].pdf
 
MS Navigating Incident Response [RU].pdf
MS Navigating Incident Response [RU].pdfMS Navigating Incident Response [RU].pdf
MS Navigating Incident Response [RU].pdf
 
2023 Q4. The Ransomware report. [RU].pdf
2023 Q4. The Ransomware report. [RU].pdf2023 Q4. The Ransomware report. [RU].pdf
2023 Q4. The Ransomware report. [RU].pdf
 
Cyber Defense Doctrine Managing the Risk Full Applied Guide to Organizational...
Cyber Defense Doctrine Managing the Risk Full Applied Guide to Organizational...Cyber Defense Doctrine Managing the Risk Full Applied Guide to Organizational...
Cyber Defense Doctrine Managing the Risk Full Applied Guide to Organizational...
 
CVE. The Fortra's GoAnywhere MFT [RU].pdf
CVE. The Fortra's GoAnywhere MFT [RU].pdfCVE. The Fortra's GoAnywhere MFT [RU].pdf
CVE. The Fortra's GoAnywhere MFT [RU].pdf
 
ИСТОЧНИКИ ИННОВАЦИОННОСТИ КИТАЯ (ПО ВЕРСИИ DGAP) | The Sources of China’s Inn...
ИСТОЧНИКИ ИННОВАЦИОННОСТИ КИТАЯ (ПО ВЕРСИИ DGAP) | The Sources of China’s Inn...ИСТОЧНИКИ ИННОВАЦИОННОСТИ КИТАЯ (ПО ВЕРСИИ DGAP) | The Sources of China’s Inn...
ИСТОЧНИКИ ИННОВАЦИОННОСТИ КИТАЯ (ПО ВЕРСИИ DGAP) | The Sources of China’s Inn...
 
Malware. DCRAT (DARK CRYSTAL RAT) [RU].pdf
Malware. DCRAT (DARK CRYSTAL RAT) [RU].pdfMalware. DCRAT (DARK CRYSTAL RAT) [RU].pdf
Malware. DCRAT (DARK CRYSTAL RAT) [RU].pdf
 
Ransomware_Q3 2023. The report [RU].pdf
Ransomware_Q3 2023.  The report [RU].pdfRansomware_Q3 2023.  The report [RU].pdf
Ransomware_Q3 2023. The report [RU].pdf
 

Антон Довгоброд: Highload и очереди задач на примере PHP + Gearman + Yii2