Как выполнить функцию на определенную дату в веб-приложении? - PullRequest
2 голосов
/ 09 июля 2010

Я работаю над проектом, использующим php и codeigniter framework. Я хочу вносить изменения в базу данных каждые 3 месяца. Проблема в том, что я не знаю, как это сделать с помощью PHP. Я могу активировать функцию, когда пользователь получает доступ к странице, но я хочу, чтобы она выполнялась самостоятельно в определенную дату.

Ответы [ 5 ]

4 голосов
/ 09 июля 2010

Вы можете кодировать свой скрипт на PHP и запускать его с CRON (при условии, что вы размещаете свое приложение в среде UNIX / LINUX).

Здесь - это веб-сайт, объясняющий, как автоматизировать выполнение PHP с помощью CRON.

1 голос
/ 09 июля 2010

Вам нужно настроить cron задание (unix) или запланированное задание (windows), которое сделает это за вас.

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

0 голосов
/ 25 мая 2014

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

0 голосов
/ 09 июля 2010

Установите cronjob и создайте свой собственный файл начальной загрузки (вы будете вызывать этот файл и передавать класс и метод в качестве параметров командной строки.

Это быстрый и грязный способ сделать это (полностью не проверено)

// usage: php cmd.php users/cron
if (php_sapi_name() != 'cli' || count($argv) != 2) {
    exit('Not enough params');
}

// Fake REQUEST_URI
$_SERVER['REQUEST_URI']  =  $argv[1];

// include the index bootstrap file
require 'index.php';

Назовите файл cmd.php и настройте задачу cron для запуска каждый месяц.

использование:

cd root/to/directory && php cmd.php users/prune

Это всего лишь unпроверено пример - но вы должны указать правильное направление:)

0 голосов
/ 09 июля 2010

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

...