LINUX.ORG.RU

PHP - реализация отложенных задач

 ,


0

1

Доброго времени суток. Есть следующая задача, попробую описать максимально абстрактно - есть некий клиент, который шлет компаниям запрос. Каждая компания должна получить уведомление об этом запросе. Уведомление запись в БД с привязкой к конкретной компании. Пока количество компаний небольшое, то проблем нет. Но если уведомление должны получить 100+ компаний(нужно создать 100+ записей в БД), то такая логика сильно тормозит страницу. Решил вынести всю эту работу на сервер. Нужные работы будут хранится в базе в формате |Class|Method|Params|Status|Date_create

Логика такая - вызываем метода класса и передаем ему массив params. Скрипт, который вызывается по крону выбирает наиболее старые задачи, у которых статус завершения отсутствует и начинает выполнять. Если метод возвращает true, то ставим статус успешный

Задумался о том, где хранить эти задачи. В той же Mysql базе, что и сам сайт? В файлах? Или может в каком-нибудь Nosql хранилище? Есть ли смысл заморачиваться, или просто хранить в обычной таблице и не мучаться? Буду очень благодарен за советы.



Последнее исправление: gwyllum (всего исправлений: 2)

Ответ на: комментарий от adn

каких данных?

int x = 1;
struct y;
Z *z = new Z;

балбес

Приятно познакомиться.

ты надоел уже

Ути-пути

твои «скрипты» исключительно в твоей фантазии

Это такая попытка оправдать усложнённые и постоянно падающие решения пера вашей говнокожей, заляпаной смузями, руки?

deep-purple ★★★★★
()
Ответ на: комментарий от deep-purple

int x = 1;
struct y;
Z *z = new Z;

ну и каша у тебя в голове. Мы говорили изначально про «невозможность» запустить несколько php процессов - в итоге ты сам их десяток запустил без какой-либо ощутимой нагрузки. Сейчас ты начал бредить fork'ами и cpp.

Это такая попытка оправдать усложнённые и постоянно падающие решения пера вашей говнокожей, заляпаной смузями, руки?

решение с циклом и redis'ом в разы проще твоего, дурень :)

adn ★★★★
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.