job - php artisan codeigniter
Trabajos de Cron en codeigniter (4)
Para mí, la forma más fácil de hacerlo es usar cURL y ejecutar la url en el cron:
curl http://admin.com/sites/publish/
Si necesita proteger la url, puede enviar datos por correo usando:
curl -X POST -d "apikey=yourapikey&another=variable" http://admin.com/sites/publish/
De esta forma, no tiene que pelear con los parámetros de php y las diferentes configuraciones.
Estoy tratando de hacer un trabajo cron con un sitio creado en CodeIgniter. Tengo acceso a la función cron de CPanel. ¿Alguien puede sugerir la mejor manera de configurar un trabajo cron usando CPanel?
Estoy usando CodIgniter entonces no puedo estar seguro de cómo llamar a un controlador dentro de un trabajo cron?
Ej. http://admin.com/sites/publish/
¿Cómo accedería a esta función de publicación dentro de los controladores de sitios usando un trabajo cron?
Lo hago de esta manera, creo la carpeta cron
/application
/cron
my_task.php
/public
make script para cada trabajo cron /cron/my_task.php con contenido
<? $_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
?>
haga que el controlador Cron como otros, pero agregue validación en IP en __construct
y finalmente correr como
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
La mejor manera es llamar desde la línea de comando en el trabajo cron ...
php /path/to/index.php controller >> /dev/null
Puede ejecutar controladores a través de la línea de comando en CI, consulte aquí .
Para Cronjob, intente acceder al controlador de línea de comandos, las funciones y los parámetros:
php index.php/controller/function/param1/param2/param3 etc
o
php index.php controller function param1 param2 param3 etc