Я хочу добавить раздел в моем приложении php для добавления / удаления запланированных задач.
Что-то похожее на то, что они используют на форуме vBulletin .
Кто-нибудь есть идеи, что они используют? Используют ли они задания cron или делают что-то выполненное на заказ.
Может ли кто-нибудь направить меня на то, как я могу выполнить что-то похожее на это, в основном я просто хочу, чтобы мой скрипт добавлял или удалял задания / задание cron.
Я не хочу использовать, например, интерфейс cPanel Cron, я хотел бы выполнить это из моего сценария.
Любая помощь приветствуется.
Если у вас нет функции exec()
, вы должны полагаться на ручную установку по крайней мере одного задания cron через некоторый интерфейс, а затем управление отдельными заданиями в вашем скрипте.
Например, я делаю это
heartbeat.php
который выполняется каждую минуту crontab
MySQL и проверяет, есть ли какая-либо строка (задание) с time_to_process <= NOW()
crontab
run()
и я вызываю только $cronJob->run()
чтобы он выполнялся crontab
только он заканчивается Хорошим примером является сброс ежедневных просмотров некоторых элементов. Работа запланирована на 1 мая 2010 года 00:00. Как только работа запустится, она автоматически планирует себя на следующий день.
Затем вы можете реализовать автоматический сброс неудавшихся заданий и многих других функций из PHP.
http://ryanfaerman.com/php-crontab-manager/
это php-класс, который позволяет вам получить доступ к crontab из PHP с помощью класса.
Я считаю, что vBulletin «подделывает» работы cron. Любой пользователь, который обращается к странице, выполняет код, который проверяет, должны ли выполняться какие-либо задачи.
Если, однако, ни один пользователь не посещает веб-сайт, ни одно из заданий cron не будет выполняться, этот метод на 100% зависит от просмотров страниц.
Кроме того, чтобы предотвратить отсрочку страницы для пользователей, выполняющих задания cron, они выполняются после того, как страница была отображена.
Опять же, это именно то, что я думаю , происходит, я сам не смотрел на код.
Надеюсь это поможет.
Вот мое решение 🙂
Пример из командной строки:
bin/cronman --enable /var/www/myproject/.cronfile --user www-data
Нажмите для получения дополнительной информации: php-crontab-manager
Вот класс crontab PHP:
http://www.kavoir.com/2011/10/php-crontab-class-to-add-and-remove-cron-jobs.html
Используйте методы для добавления, редактирования или удаления заданий cron.