#очередь #php #yii
По мере создания своего проекта столкнулся с проблемой - есть некоторые действия пользователей, которые могут длиться до нескольких минут. Ясно понятно, что заставлять пользователя ждать, пока выполняются такие длинные запросы к серверу непозволительно! И тут пришел к выводу, что нужно организовать очередь задач, чтобы пользователь нажал ссылку, на сервере сформировалась задача, а пользователю лишь только отображался процесс выполнения задачи. Даже набросал табличку в БД, но решение получилось не универсальным. Созданная очередь задач умеет выполнять только шелл скрипты, а мне бы хотелось научить ее выполнять еще логику на PHP, и чтобы результаты обоих случаев складывались в БД. Слышал о RabbitMQ, Apache Message Queue, но мне кажется, что они слишком избыточны для моего случая. Мне нужно-то, делать некоторые проверки на сервере (тут как раз пригодился бы способ выполнения PHP кода, и в зависимости от результата продолжалось бы выполнение задач, или нет), и манипулировать учетными файлами, и просто "тяжелыми" файлами. Где можно было почитать как организовывать подобные вещи? Может кто сталкивался уже с этим, и нашел решение? Проект создается на базе фреймворка Yii.
Ответы
Ответ 1
Воркер на пхп и запускать его по крону. Не?Ответ 2
ПО мере создания своего проекта столкнулся с проблемой такого плана - есть некоторые действия пользователей, которые могут длиться до нескольких минут. Это ужасно! Это следствие плохой структуры БД и скриптов. Что такого может выполняться, да к тому же у каждого пользователя по минуте по две? Ладно обработка нескольких таблиц с математическими действиями по подсчете скидок у 16К клиентов и 25К заказов. Тут да у меня на серваке до 8 минут считаются, но раз в день и для всех сразу, а не для каждого по отдельности. Я даже набросал табличку в БД, и все бы хорошо, но решение получилось не универсальным. Созданная очередь задач умеет выполнять только шелл скрипты, а мне бы хотелось научить ее выполнять еще логику на php, и чтобы результаты обоих случаев складывались в БД. В Yii есть консольные приложения(и тут), юзай их. Делай там и логику и операции с данными. Не нужно изобретать с данном случае велосипед.
Комментариев нет:
Отправить комментарий