Aсинхронную очередь заданий для PHP?

Я разрабатываю веб сайт на Yii фреймворке, планируется что сайт будет высоко нагруженный (до 200,000 в день). Мне нужно будет обрабатывать картинки, отправлять почту и т.п. ну и нужно делать это асинхронно. Раньше я с таким не сталкивался и не знаю что выбрать. Посоветуйте что-нибудь.



UPD: всем спасибо, я склоняюсь к Gearman, но еще почитаю о RabbitMQ
  • Вопрос задан
  • 7383 просмотра
Пригласить эксперта
Ответы на вопрос 9
sHinE
@sHinE
веб-разработчик, php/js/mysql и сопутствующее
Есть сервер заданий — gearman — про него недавно статья как раз была. PHP с ним вполне работает — может как посылать задачи на него, так и получать и выполнять.
Ответ написан
taliban
@taliban
php программист
3 человека в секунду это очень даже не высокие нагрузки
Для рассинхронизации можете себе завести в бд (или где-то еще) табличку с заданиями и потом кроном выбирать по 10-20 заданий и обрабатывать их.
Ответ написан
MuXaJIbI4
@MuXaJIbI4
зачем ломать голову над тем чего еще нет? :)

а насчет многопоточности можешь попробовать это github.com/amal/AzaThread
Ответ написан
sad
@sad
Если выбор ваш падет все же на Gearman, советую обратить внимание на менеджер воркеров github.com/brianlmoon/GearmanManager. Мы его используем на своем проекте, с небольшими модификациями (кстати, тоже с Yii):
  • новый класс приложения, который содержит в себе и запускает менеджер;
  • новый механизм парсинга конфига, такой, что бы менеджер понимал свои же опции из конфига Yii;

Заодно еще пару советов по работе воркеров с менеджером:
  • не пользуйтесь опцией max_worker_lifetime отличной от 0. Лучше в конце работы делать:
    $this->sendComplete($result);
    exit(0);

    Так можно освободить ресурсы без боязни, что менеджер перезапустит воркер в середине его активной работы.
  • выставьте auto_update = 0, особенно в продакшне.

Успехов.
Ответ написан
@phasma
Если у тебя очереди только FIFO планируются, то можно юзать Gearman, если планируется LIFO, то он уже не подойдет. Вообще для очередей отлично подойдет Redis, например.
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы
Платформа НТИ Москва
от 160 000 до 190 000 руб.
Удобные решения Екатеринбург
от 100 000 руб.
Перформикс Москва
от 140 000 до 220 000 руб.
26 янв. 2020, в 12:46
450 руб./в час
26 янв. 2020, в 12:27
3000 руб./за проект
26 янв. 2020, в 11:24
1000 руб./за проект