Итак, сайт находится на производственном сервере, который не поддерживает crontasks. И я хочу удалить недействительные запросы пароля, неиспользованные скидки, все, что превышает «крайний срок». Это не проблема, они не являются точными, это не проблема, если запрос пароля действителен в течение 24 часов и его 24 часов и 58 секунд (поэтому они могут опаздывать на несколько секунд).
В настоящее время я делаю это так:
private function thisMethodRunsAtEveryRequests()
{
if (rand(1,100) == 1)
{
do cleaning SQLs
}
}
Тем не менее, есть проблемы, когда он запускается одновременно.
Если вы можете выполнить задачу cron на другом сервере, вы можете сделать следующее:
* * * * * curl http://www.website.com/cron.php > /dev/null 2>&1
Если нет, то вы можете записать, когда ваш скрипт в последний раз выполнял эту «задачу cron», в файл / базу данных и проверять ее при каждой загрузке страницы, когда в последний раз она выполнялась и если разница между time()
и в прошлый раз достаточно, запустите задачу снова.
Других решений пока нет …