Есть ли другой способ периодически выполнять код SQL, кроме cron? - PullRequest
0 голосов
/ 28 декабря 2011

В основном я хочу обрезать таблицу каждые X дней, но я не хочу использовать cron. Я хотел бы иметь своего рода встроенный скрипт в php-файле, чтобы сделать это, и, возможно, триггеры sql могут помочь мне. К сожалению, я не знаю, как их использовать.

Ответы [ 3 ]

3 голосов
/ 28 декабря 2011

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

0 голосов
/ 28 декабря 2011

На моих сайтах у меня есть своя собственная система "cron". Я делаю ajax запрос к моему скрипту cron сразу после загрузки страницы. Он сравнивает текущую дату с последней датой cron, хранящейся в базе данных, и, если [текущая дата - дата последнего cron] больше заданного интеркала, исключите мой скрипт cron и обновите дату последнего cron. Я сделал это с помощью ajax, поэтому я могу выполнять довольно тяжелые задания cron и не влиять на загрузку страниц пользователя. А также этот cron исключает только если пользователи посещают ваши страницы, и во многих случаях вам не нужно указывать cron, если пользователи не посещают вашу страницу.

0 голосов
/ 28 декабря 2011

В зависимости от версии MySQL у вас может быть доступ к CREATE EVENT , который позволяет MySQL запускать свои собственные процессы в запланированное время.

например,

CREATE EVENT myevent
    ON SCHEDULE EVERY 1 DAY
    DO
      UPDATE myschema.mytable SET mycol = mycol + 1;

Для выполнения задачи каждый день

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

...