LINUX.ORG.RU

Удаление SQL записей

 ,


0

1

Товарищ кодит некое подобие живой очереди, php+mysql. Необходимо удалять записи юзеров, которые за полчаса с момента регистрации не прошли по ссылке для активации.

Я предложил два варианта: 1) Запихнуть в cron скрипт, который будет удалять подобные записи 2) Запихнуть этот же скрипт в какую-то посещаемую страницу (скажем, внутрь скрипта активации)

Оба варианта товарища не впечатлили. Есть какие-то еще простые варианты, которые нельзя назвать «напильником»?

Обычно в приложении для таких вещей проектируются хуки. На эти хуки потом такие вещи и вешаются.

Wizard_ ★★★★★ ()

Триггер на табличку с юзерами.

ziemin ★★ ()

создать отдельную страницу, из которой будет дергаться скрипт проверки, кроном подцепить к ней. если товарищу влом разбираться с кроном и страница расположена на внешнем сервере - можно дергать страницу бесплатным подобием крона с другого сайта.

anonymous ()
Ответ на: комментарий от Wizard_

Насколько я знаком с хуками... В данном случае сложнее хук написать, чем написать все остальное приложение =)

Спасибо.

l0stparadise ★★★★★ ()

Хук это фигня какая то. Правильно использовать аналог крона в вашем проекте. Как вариант, чтобы не сильно заморачиваться - сделать какую-нибудь страничку типа /cronjobs.php и её дёргать реальным кроном (через wget), а в ней прописать логику.

Legioner ★★★★★ ()
Последнее исправление: Legioner (всего исправлений: 1)

Мне тут гуру подсказали отличное подобие очереди с либой для ПХП, зовётся сие чудо beanstalk, пхпшная либа - pheanstalk. Кидаешь задания на 30+ минут в очередь, воркер проверяет, если юзер не активировался - нафиг

Real1tySucks ()
Ответ на: комментарий от Legioner

Хук — это способ встраивания сторонних модулей в логику приложения. Поскольку автор топика говорил именно о доработке, то мне пришла мысль именно о хуках. А пони — это фигня, да.

Wizard_ ★★★★★ ()

Вариант: использовать хранимые процедуры СУБД.

blackst0ne ★★★★★ ()
Ответ на: комментарий от Real1tySucks

Мне тут гуру подсказали отличное подобие очереди с либой для ПХП, зовётся сие чудо beanstalk, пхпшная либа - pheanstalk.

Тащем-то в PHP не только клиент к beanstalk есть, но и ActiveMQ, ZeroMQ, Celery, Gearman и т.п.

resurtm ★★★ ()

Удалять, чтобы не показывать? Это лучше делать один раз, ночью. А в течении дня, просто не выводить таких.

VirRaa ★★★ ()
Ответ на: комментарий от resurtm

Тащем-то в PHP не только клиент к beanstalk есть, но и ActiveMQ, ZeroMQ, Celery, Gearman и т.п

Тогда уж лучше RabbitMQ.

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

Ну вообще разница не слишком большая в конкретной задаче, чуть отредактировать sql запросы в ту или другую сторону не сложно.

Тут вопрос именно в автоматизации процедуры.

l0stparadise ★★★★★ ()

Спасибо за помощь, вариант с create event понравился.

l0stparadise ★★★★★ ()
Ответ на: комментарий от Legioner

её дёргать реальным кроном (через wget)

Зачем нагружать этим говном веб-сервер? Трудно через cli, чтоли, не понимаю.

tazhate ★★★★★ ()
Ответ на: комментарий от Legioner

Хук это фигня какая то. Правильно использовать аналог крона в вашем проекте. Как вариант, чтобы не сильно заморачиваться - сделать какую-нибудь страничку типа /cronjobs.php и её дёргать реальным кроном (через wget), а в ней прописать логику.

Буэ! Все нормальные фреймворки умеют CLI. [1] [2]

resurtm ★★★ ()
Ответ на: комментарий от tazhate

Например в веб-приложении могут быть объекты, дао и нужная задача реализуется гораздо проще, чем писать скрипты заново. Если cli, надо или дублировать функционал или делать всякие общие библиотеки. Опять же надо про права не забывать, пользователей нужных. Куча проблем на ровном месте.

А нагружается не веб-сервер, а база, причем в обоих случаях одинаково.

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

Если cli, надо или дублировать функционал или делать всякие общие библиотек

Что за бред? Видел кучу костылялок с кроном, все всегда спокойно переделывал на cli. Тупо вместо wget localhost/cron.php пишешь php /var/www/cron.php.

tazhate ★★★★★ ()

Необходимо удалять записи юзеров, которые за полчаса с момента регистрации не прошли по ссылке для активации.

проверяй прямо перед началом процедуры регистрации. Ведь это же единственное место, где юзеров становится больше? Вот там и убирай лишних.

drBatty ★★ ()
Ответ на: комментарий от Legioner

Например в веб-приложении могут быть объекты, дао и нужная задача реализуется гораздо проще, чем писать скрипты заново.

а что там писать? любой входящий сначала пытается зарегится(скрипт проверяет, был он или нет. А если был, даёт логин/права). Там можно и скрипт cron.php засунуть.

drBatty ★★ ()
Ответ на: комментарий от Legioner

Например в веб-приложении могут быть объекты, дао и нужная задача реализуется гораздо проще, чем писать скрипты заново.

Не надо ничего писать заново. Надо сразу проектировать приложения правильно. Использовать паттерны слабого связывания (DIC, IoC), остерегаться ТТУКов (толстые тупые контроллеры), делать сверхтолстые модели и прочие приёмы.

Когда настанет пора разрабатывать консольный front controller, то сделать это будет проще простого, если все эти принципы соблюдены.

Если cli, надо или дублировать функционал или делать всякие общие библиотеки.

Выше расписал.

Опять же надо про права не забывать, пользователей нужных. Куча проблем на ровном месте.

Тебе chmod/chown трудно сделать? 0_o

Да и post deploy скрипты — обычное дело.

resurtm ★★★ ()
Последнее исправление: resurtm (всего исправлений: 1)
Ответ на: комментарий от resurtm

Надо сразу проектировать приложения правильно.

ты выбрал не тот глобус.

drBatty ★★ ()

Нафиг удалять? из бд вообще лучше ничего не удалять, всё равно места больше не будет, а информация теряется. есть дата создания, при активации проверять её проверять. на вскидку можно приложить кучу применений этой информации для анализа.

vtVitus ★★★★★ ()

Добавить к запросу where (regDate + 30min >= now) or (actDate is not null) религия не позволяет? Лишние записи можно удалять скриптом на главной раз в день.

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