Я хочу запускать URL-адрес каждый день в 13:00, который проверяет, были ли изменены некоторые переменные, запустив запрос по внешнему API, а если изменился — сохраните новые переменные и уведомите меня по электронной почте.
Рабочая среда:
Я использую CodeIgniter MVC Framework.
Ubuntu Server 15.10.
Больше информации о ситуации:
function cron_job()
установлен на public, хотя я не уверен, что это безопасно и актуально для публичности, так как это специальная функция, которую должен запускать только сервер. публичная функция cron_job () {
// проверяет vars и отправляет обновленные сообщения по электронной почте.
}
cron_job()
функция. (Создайте новую частную функцию, которая добавляет сеанс и вызывает cron_job()
функционировать? Я действительно не уверен, что это правильно делать) что-то вроде этого?
приватная функция add_session () {
$ date = array (
’email’ => $ email, // ??? ‘is_logged_in’ => TRUE
);
$ This-> cron_job ();
}
мне даже разрешено запускать приватную функцию с сервера?
или я могу вставить переменную сеанса, используя зашифрованную функциональность CI, и сделать это легко вместе с функциональностью задания cron моего сервера Ubuntu?
Не используйте веб-концепции для функций CLI … И вообще, не связывайтесь с состояниями аутентификации и входа в систему.
Что вы должны сделать, это переместить эту функцию в отдельный контроллер, который не требует, чтобы вы были «залогинены» и вставили проверку, чтобы убедиться, что она может быть запущена только через CLI, например так:
class Cli_only extends CI_Controller {
public function __construct()
{
parent::__construct();
is_cli() OR show_404();
}
}
Кроме того, если сделать метод контроллера закрытым в CI, он станет недоступным для внешнего мира, поэтому эта идея не может работать.
Других решений пока нет …