Выполнить функцию в фоновом режиме

Я создаю систему напоминаний, которая может отправлять электронные письма в дату и время, установленные в каждом напоминании.

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

Редактировать:
Я использую PHP на Windows 10.

0

Решение

Вам нужно установить хрон работа запускать свой код каждый Икс минута / час / день / …

Создайте метод в контроллере и поместите в него свой код. Затем настройте работу cron для запуска в особые моменты.

Если у вас есть cPanel или другие панели управления, это будет легко.

Правка № 1: Для запуска в CLI вы должны запустить index.php с помощью команды php и отправить контроллер и имя действия в качестве параметров. Если у вас есть контроллер с именем пользователь и метод с именем «happy_birthday», тогда вам нужно выполнить эту команду: php index.php users happy_birthday,

0

Другие решения

Продолжая ответ Али Фарухди.

Вам нужно использовать авторизацию $ this-> input-> is_cli_request ()

https://ellislab.com/codeigniter/user-guide/general/cli.html

Is_cli_request () гарантирует, что вы запускаете команду с сервера, то есть IE никто не только перешел по этому URL и запустил скрипт.

У большинства хостинговых сервисов есть простой способ сделать это (запустить cron). Сначала вы можете обнаружить пробные версии и ошибки, поскольку ваш сервер разработки, вероятно, будет отличаться от производственного. Так что то, что работает на вашем компьютере для запуска скрипта в терминале / где угодно, не будет таким же, как сервер по понятным причинам.

Так что это просто контроллер, как и любой другой, который ваш сервер в данный момент времени запускает.

Мой выглядит примерно так, установлен внутри крон

php-cli /home/a_subfolder/public_html/another_subfolder/myscript.php

Это работает на сервере Linux, так что часть вопроса о codeigniter выше, как вы запускаете cron в Windows, не знаю

Проверь это.

Какая версия cron для Windows?

Я предполагаю, что вы управляете этим локально только тогда? Судя по windows 10.

0

По вопросам рекламы [email protected]