El amanecer perezoso de Drupal

Como casi todos los días, hoy enciendo la PC. Abro el navegador y cargo el sitio que estoy desarrollando. Y ahí espero... espero... espero, y finalmente arranca. Comienzo a programar, a crear vistas, a organizar los bloques, todo a una velocidad decente. Tiempo después llega la hora del almuerzo. Al volver del almuerzo, repito la rutina, al intentar cargar el sitio, espero... espero... espero. Al rato el sitio reacciona, y de nuevo al ruedo.

Siempre me llamó la atención este comportamiento. En un principio pensaba que tendría algo que ver con el servidor, con algún proceso que que estaba en hibernación y se despertaba después de un tiempo de letargo. Pero no. Resulta que la culpa es de Drupal, y es muy fácil de arreglar.

El Cron de los pobres

El Cron es un gran olvidado para los desarrolladores de Drupal. Configurarlo usualmente require conocimientos del cron de linux, y algunos hostings compartidos no permiten ni siquiera modificar este valor de una forma flexible.

Para las personas que no pueden (o quieren) pagar por un VPS o un servidor dedicado, configurar Cron puede depender de la bondad del proveedor de hosting. Dave Reid se dio cuenta de esto e inventó Poormanscron, un módulo para Drupal 6 que permite correr Cron simplemente visitando una página del sitio si se detecta que Cron no corrió durante una cierta cantidad de tiempo.

Poormanscron era una idea excelente para muchos y fue incluido en el núcleo de Drupal 7.

El problema y la solución

Por defecto, cada vez que instalamos Drupal, el cron se configura para correr cada tres horas.

Correr cron es una tarea costosa y no debería hacerse a menos que sea estrictamente necesario. Hay más información sobre este tema en How Drupal's cron is killing you in your sleep + a simple cache warmer

Hmmm, cada tres horas... Misterio desvelado entonces mi querido Watson. Cuando arrancamos la PC y cuando volvemos de almorzar, cron corre al visitar la primera página de nuestro entorno local.

La solución es muy simple, podemos desactivar cron desde Administración → Configuración → Cron (admin/config/system/cron)

Configurar el cron de drupal

Y así arreglamos algo que puede sacar de quicio a los desarrolladores impacientes. Sea feliz, desactive cron mientras desarrolla.

Te invito a leer también...

Compartir este material en...

Comentarios

Buen punto Mariano. Otra opción sería agendar un cronjob, de manera que la ejecución del cron no dependa de hacer un request. En la línea del desarrollador impaciente, recomiendo instalar memcache para desarrollar, acelera muchísimo los tiempos de respuesta en el local. Saludos!

Realmente no lo sabía, y había estado buscando esto desde hace un año. Me lo reportaban y podía replicar el problema incluso en el acquia dev desktop, había empezado a pensar que era la luz mala :p. Excelente artículo, voy a compartirlo.

Hola, que tal, mi nombre como dice arriba es Jorge Segura, soy Diseñador Gráfico y vivo en México, vi tu site y no se si esta creado con Drupal?, pero me gusto y hace tiempo e oído hablar de este CMS, me gustaría aprender a usarlo, como dató solo una vez use wordpress pero no me convenció y lo deje en el olvido.
Mira uso dreamweaver para hacer páginas y actualmente estoy en proceso de una en especial del ramo automotriz (autos, no venta, sólo mostrar los autos), pero en ocasiones crear las tablas me causa perdida de tiempo y lo que necesito es más tiempo para hacer otras cosas, personales o de trabajo, pero por que te comento esto?, por la sencilla razón y creo que usar Drupal me podría simplificar esta parte, no se sí me doy a entender.

Lo que necesito es aprender a usarlo desde cero, algunos tutoriales o una guía. Ahora bien te pregunto que tan adictivo es Drupal ya que en lo particular si me gusta algo lo uso por un largo periodo.

Desde ya mil gracias y espero sigas difundiendo tu conocimiento con los que menos sabemos.

Añadir nuevo comentario