Hero

Como ejecutar una función de cron especifica con Drush

Marzo 25, 2014

enzo
Drupal

En algunas ocasiones necesitamos ejecutar alguna implementación del hook_cron() en especifico ya sea por una emergencia o por estar en el proceso de desarrollo. Lamentablemente esta no es una opción disponible en Drush o mediante la interfaz de Drupal, aun si tenemos instalando el Elysia Cron.

Afortunadamente tenemos dos trucos para solucionar esta problemática.

  1. Drush + Eval.

Drush permite en la linea de comando hacer uso de la función de php eval como podemos apreciar en el siguiente comando.

$ drush php-eval '$a=5+5; echo $a . "\n"'
10
$

De la misma forma que el código php se ejecuto, podemos usarlo para ejecutar la función que necesitemos, como se muestra en el siguiente comando.

$ drush php-eval 'mimodulo_cron();'

Si la función existe se ejecutara.

  1. Usando Lightcron.

Existe un proyecto en github llamado Drushexts = Drush Extensions que por ahora la única extensión disponible es Lightcron.

2.1 Como instalarlo.

Clonar el repositorio y ubicarlo en la ruta ~/.drush/drushexts con el siguiente comando.

git clone https://github.com/jh3/drushexts.git ~/.drush/drushexts

Borrar el cache de drush para que se vuelvan a leer la extensiones disponibles.

$ drush cc drush

2.2 Como usarlo.

Ya con la nueva extensión disponible solo debemos pasar como parámetro al lightcron el nombre del modulo que deseamos ejecutar la implementación del cron, como se muestra en el siguiente ejemplo.

$ drush rch mimodulo

Espero que haya sido de su agrado.

Recibe consejos y oportunidades de trabajo 100% remotas y en dólares de weKnow Inc.