Yo creo que la forma más sencilla de hacerlo es creando un controlador que reciba la url y ejecute luego la función que necesites. De este modo lo puedes ejecutar tanto directamente desde el navegador tecleando la url como programarlo en el módulo de cron o en el programador de tareas del hosting (si lo tiene).
Ejemplo:
class MisFeedsFeedModuleFrontController extends ModuleFrontController { public function initContent() { parent::initContent(); if (!Configuration::get('MIS_FEEDS_ACTIVO')) { echo 'MODULO DESACTIVADO'; die(); } if (!Tools::isSubmit('key') || (Tools::getValue('key') != $this->module->secret_key)) { echo 'NO AUTORIZADO'; die(); } if (Tools::isSubmit('action')) { $action = Tools::getValue('action'); switch ($action) { case 'generarFeed': $this->module->generateFeeds(); echo 'FEEDS GENERADOS EL '.date('Y-m-d H:i:s'); break; } } die(); } }
Y esto funcionaría usando la url:
https://tusitio.com/module/misFeeds/feed?action=generarFeed&key=mi_clave_secreta