Cron рабочих мест в codeigniter - PullRequest
       24

Cron рабочих мест в codeigniter

6 голосов
/ 06 сентября 2011

Я пытаюсь выполнить работу cron с помощью сайта, встроенного в CodeIgniter. У меня есть доступ к функции cron CPanel. Кто-нибудь может предложить лучший способ настройки задания cron с использованием CPanel?

используя CodIgniter, поэтому вы не можете быть уверены, как вызвать контроллер в задании cron?

Например, http://admin.com/sites/publish/

Как мне получить доступ к этой функции публикации в контроллерах сайтов с помощью задания cron?

Ответы [ 5 ]

8 голосов
/ 06 сентября 2011

Лучший способ - позвонить из командной строки в задании cron ...

php /path/to/index.php controller >> /dev/null

Вы можете запускать контроллеры через командную строку в CI, см. здесь .

5 голосов
/ 07 сентября 2011

Для меня более простой способ сделать это - использовать cURL и выполнить url в cron:

curl http://admin.com/sites/publish/

Если вам нужно защитить URL, вы можете отправить данные по почте, используя:

curl -X POST -d "apikey=yourapikey&another=variable" http://admin.com/sites/publish/

Таким образом, вам не нужно бороться с параметрами php и различными конфигурациями.

2 голосов
/ 11 марта 2013

Я делаю так, создать папку cron

/application
/cron
   my_task.php
/public

сделать скрипт для каждого задания cron /cron/my_task.php с контентом

<?  $_SERVER["SCRIPT_URL"] = "/controllerName/MethodName"; // you can set url in routes if you want
    $_SERVER["HTTP_HOST"] = "your_site_address.com"; // without http://www
    require(dirname(__FILE__) . "/../public/index.php");  // path to index.php
 ?>  

сделать контроллер Cron похожим на другие, но добавить проверку по IP в __construct

и, наконец, запустить как

1 10 * * * cd /path_to_site_folder/cron/ && usr/local/bin/php /path_to_site_folder/cron/my_task.php >> path_to_log/some.log
1 голос
/ 01 февраля 2016

Для Cronjob попробуйте это, чтобы получить доступ к контроллеру командной строки, функциям и параметрам:

php index.php/controller/function/param1/param2/param3 etc

или

php index.php controller function param1 param2 param3 etc
0 голосов
/ 02 ноября 2018

просто используйте эту команду и вставьте ее.

wget www.example.com/index.php/controller/function
...