Я думаю, что ваша концепция должна измениться.
PHP не может запланировать задание, как и MySQL. Триггеры в MySQL выполняются, когда возникает запрос mysql, а не в определенное время. Ни один
Это ограничение обычно не является проблемой в веб-разработке. Причина в том, что ваше PHP-приложение должно контролировать все входящие и исходящие данные. Обычно это означает только HTML, который отображает эти данные или другие форматы для пользователей или других программ.
В вашем случае вы можете думать об этом таким образом. Крайний срок – установленная дата. Вы можете рассматривать его как данные и сохранять в своей базе данных. Когда наступает крайний срок, важно не то, что отправленные вами данные в вашей базе данных просматриваются правильно.
Когда к вашему приложению поступает запрос, проверьте, не прошла ли дата крайнего срока, если это так, то отобразите, что проект закрыт, или обновите, что проект закрыт, непосредственно перед отображением.
На самом деле нет причин обновлять данные независимо от вашего PHP-приложения.
Обычно единственное, что вы хотите запланировать, — это задания, которые могут повлиять на ваше приложение с точки зрения нагрузки, или которые необходимо выполнить только один раз, или когда параллелизм или время являются проблемой.
В вашем случае ни один из них не подходит.
PS: я не пробовал PHPscheduler, но могу предположить, что это не настоящий планировщик. Cron — это демон, который спит, пока данная задача не появится в очереди, выполняет задачу, а затем спит, пока не наступит следующая задача (по крайней мере, это то, что он делает в текущем алгоритме). PHP не может этого сделать без сокетов и расширений fork, как специальная настройка. Таким образом, PHPscheduler, скорее всего, просто проверяет, не истек ли срок действия задачи, при каждой загрузке веб-страницы (каждый раз, когда PHP выполняет страницу). Это ничем не отличается от того, что вы просто проверяете, истекла ли дата проекта, без накладных расходов PHPScheduler.
person
bucabay
schedule
13.08.2009