Juan Pablo Prado

Software Engineer

  • Home
  • About
  • Contact

Connect

  • Github
  • Linkedin
  • Twitter

Juan Pablo Prado © 2021

Cron para tu sitio WordPress

octubre 10, 2016 By Juan Prado Leave a Comment

automate-all-the-things

En el post anterior acerca de Backups Automáticos para tu sitio WordPress, nos encaminaba por el proceso de configuración de las copias de seguridad automáticas. En este post voy a demostrar cómo configurar cron.

WordPress ha incorporado soporte para las tareas programadas, lo que permite a ciertos procesos que se deben realizar como un proceso en segundo plano en los horarios establecidos. WordPress lleva a cabo las siguientes tareas programadas:

  • Las actualizaciones automáticas que son empujadas por el equipo central de WordPress para solucionar vulnerabilidades de seguridad.
  • Comprobar WordPress este instalado con la última versión estable.
  • Comprobar si hay actualizaciones de plugins.
  • Comprobar si hay actualizaciones del tema.
  • Publicar todos los mensajes programados para futuras versiones.

Sin embargo, el sistema cron usado por WordPress no es la implementación mas potente o precisa. De hecho, WordPress es un sistema de cron falso. La razón de esto es que las tareas programadas dentro de WordPress se activan durante el ciclo de vida de un page request. Por lo tanto, si tu sitio no recibe ninguna visita durante un período determinado de tiempo, ningún evento cron se activará durante este tiempo. Esto también aplica a los sitios que utilizan el almacenamiento en caché de página completa, tales como Nginx FastCGI. La razón de esto es que WordPress ya no está procesando cada solicitud de página si se golpea el caché de páginas. Por lo general, esto significa que el cron no se disparará hasta que el caché de la página expira. Si has configurado que el caché caduque después de 60 minutos esto puede no ser un problema, sin embargo, si estas cacheando períodos más largos de tiempo, esto puede llegar a serlo. Otros problemas pueden surgir en los sitios de alto tráfico, donde el almacenamiento en caché de página completa no es una opción. Esto se debe a la comprobación innecesaria de la cola cron en cada petición individual, lo cual es muy ineficiente.

Para superar estos problemas es aconsejable que cron se configure con el demonio del sistema (proceso en segundo plano), que está disponible en los sistemas basados en Unix. Debido a que cron se ejecuta como un daemon que se ejecutará en base a la hora del sistema del servidor y ya no requerirá que el usuario visita el sitio. Pero antes de configurar el cron se recomienda que deshabilites la manipulación automática de cron de WordPress. Para hacerlo añade la siguiente línea a tu archivo wp_config.php.

define('DISABLE_WP_CRON', true);

Introduciendo crontab

Los eventos Cron se añaden a un archivo de texto llamado crontab y cada línea dentro del archivo equivale a un único evento cron.

Primero conecte a su servidor.

ssh juan@apollo.juanpabloprado.com

Abre la crontab con el siguiente comando. Si esta es la primera vez que hayas abierto crontab, es posible que se te pida seleccionar un editor. Opción 2 (nano) es generalmente la más fácil.

crontab -e

crontab

No voy a entrar en detalles sobre la sintaxis crontab, pero añadiendo lo siguiente al final del archivo activará cron cada 5 minutos. Sólo recuerda que debes actualizar la ruta del archivo para apuntar a tu instalación de WordPress.

*/5 * * * * php -q /var/www/html/wp-cron.php >/dev/null 2>&1

La parte:

 >/dev/null 2>&1

Asegura que ningún mensaje de correo electrónico se envíe a la cuenta de usuario que inicia la tarea o cron job en ingles.

cron-job

Guarda el archivo pulsando Ctrl X seguido de Y.

De igual manera cuento con varias tareas automatizadas puedes echarles un vistazo al siguiente repo y en el futuro espera un blog post acerca de ellas.

Cron ahora está configurado con la función nativa cron de Unix. 🙂

Filed Under: Uncategorized Tagged With: Cron, Digital Ocean, Linux, Server, Ubuntu, WordPress, WordPress Development Tips

Recursos para una entrevista técnica

octubre 2, 2016 By Juan Prado Leave a Comment



Ya tienes la entrevista para una las empresas mas grandes de software, los 4 grandes (Amazon, Facebook, Google & Microsoft), sino mas vale estar preparado para cuando esa oportunidad llegue. A continuación, listare una serie de recursos que he encontrado útil, que te pueden ayudar en tu entrevista técnica:

  • Passing the Google Interview, Without a Computer Science Degree
  • Preparing For a Job Interview
  • Solving Problems, Breaking it Down

Y el famoso libro de Cracking the Coding Interview

Hay una serie de retos de la autora del libro en HackerRank

Te recomiendo que realices retos de HackerRank reescríbelos en tu IDE favorito, agrega unos unit tests y súbelos a tu cuenta GitHub, haz un habito el resolver y compartir tu solución en un gist o GitHub cada semana e.g. Hash Tables: Ransom Note.

Así practicando algoritmos cada semana te encontraras formando parte de un pequeño porcentaje de desarrolladores, que practican su diseño de algoritmos, y el día que tengas que hacer una entrevista técnica tengas los fundamentos cubiertos.

Lo que tengo planeado hacer y debe ayudar mucho en el proceso es hacer mock interviews, reúnete con un amigo y practiquen como sería una entrevista, cambiando de roles de entrevistador a entrevistado, programen sobre un pizarrón, y háganse preguntas acerca del dominio de software al cual estén aplicando.

Si tienes algunos recursos sobre cómo prepararse para una entrevista técnica, por favor, compártelo en los comentarios.

Filed Under: Uncategorized

Aprendiendo Spring Boot

septiembre 25, 2016 By Juan Prado Leave a Comment

Mas que un tutorial, este es un update de lo que he estado aprendiendo… Spring Boot es una opción para realizar todo tipo de desarrollo web empresarial con la mano de Java.

Entramos a start.spring.io donde generaremos un esqueleto de nuestro proyecto, para ello usaremos Gradle como nuestra herramienta de compilación, de igual manera pudimos haber elegido maven. Para nuestra versión usaremos la ultima hasta el momento, la 1.3.8, seleccionamos las dependencias como se encuentra en la imagen de abajo, Cabe mencionar que al momento de elegir Thymeleaf como nuestro motor de plantillas, se agrega Spring MVC como dependencia transitiva. Una vez conformes con nuestra configuración, hacemos clic en Generate Project

spring-initializr

Una vez descargado nuestro proyecto hay que importarlo a nuestro IDE de preferencia.

unit-test-context-loads

Learning Spring Boot ASCII

Si cuando corres tu servicio web, deseas que se muestre un banner como el de arriba, solo agrega un archivo banner.txt en tu carpeta de resources, estos banners los puedes generar con la asombrosa herramienta TAAG, úsala para tus necesidades de arte ASCII.

En fin, asegurate de echarle un vistazo al codigo en GitHub, si quieres aprender Spring Boot te recomiendo tomar el curso de Learning Spring Boot en video de Greg L. Turnquist

Filed Under: Uncategorized Tagged With: Spring Boot

  • « Previous Page
  • 1
  • 2
  • 3
  • 4
  • Next Page »

Categorías

  • Uncategorized