Si necesita ejecutar automáticamente tareas con mucha frecuencia en WordPress, ¿es probable que bloquee su servidor o reciba tiempos de espera (su servidor detiene el código porque requirió demasiado tiempo o recursos de procesamiento?). Afortunadamente, podemos programar este tipo de tareas utilizando eventos cron de WordPress. Explicaré cómo se hace, pero permítanme explicar primero por qué tuvimos que usar esta funcionalidad en Nelio. Análisis de contenido de Nelio: simplificando un problema complejo si es un nuevo visitante que llega aquí sin saber nada sobre nosotros, ¡bienvenido! En Nelii nos dedicamos a crear complementos para WordPress y ganar nuestra existencia. Hoy les hablaré sobre el contenido de Nelio, nuestro complemento que lo ayuda a mejorar tanto la creación como la promoción de su sitio web.

Análisis por contenido de Nelio. Comenzando con la versión 1.2.0, el contenido NELI incluye una sección de análisis donde puede verificar qué tan bien (¿o malo) funciona su contenido. La idea es que puede ver tanto la eficiencia de sus publicaciones de acuerdo con la cantidad de vistas de página que tienen, como comentarios). recibieron, etc.). Como puede ver, esto es muy fácil de explicar y comprender, pero agregar análisis implica un gran problema: ¿cómo puedo actualizar los datos de análisis sin congelar mi servidor de WordPress? Maldita sea, ¿es difícil?
En un mundo ideal, le gustaría tener todos estos datos actualizados en cada milisegundo (o incluso cada nanosegundo), pero lamento decirle que esto es imposible. Antes de comenzar programado como Crazy, el equipo de Nelio se sentó para discutir lo que tiene sentido. Había dos opciones sobre la tabla: cada vez que un visitante visita una página o publicación, guardamos las visitas para seguir en la base de datos para considerar un +1 en el número total de visitas de ese contenido.
Accedemos a esta información a través de un servicio externo, como Google Analytics.
Si usa el contenido de Nelio, sabrá que la opción que finalmente implementé fue la segunda. Entre otras cosas, las principales razones fueron:
Guardar información para rastrear las visitas directamente en WordPress es una pesadilla. Si tiene una web con mucho tráfico, podrá comprometer su velocidad debido a la base de datos. Colapsarás escribiendo en la tabla constantemente. ¡Una mala idea!
Almacenar esta información en la nube tiene un costo (alto) que debemos transferir a nuestros clientes. Esto es factible, pero quería que el análisis fuera accesible para todos … por lo que no está de acuerdo.
Si seguimos la información de las visitas (independientemente de dónde guardemos los datos), nuestros usuarios no podrán ver datos reales en este momento, porque tendrá que esperar unas pocas semanas para recopilar información sobre sus visitantes. Pero queremos datos lo antes posible (¡no solo desarrollamos contenido de Nelio, sino que también los usamos a diario … y son algunos de los clientes más exigentes que tenemos?)!
Si la mayoría de los sitios web ya están siguiendo esta información con herramientas externas especializadas, ¿reinventaremos la rueda aquí? No tiene sentido. Teniendo en cuenta todo esto, decidimos usar la API de Google Analytics para obtener información sobre la pantalla de la página. Ahora, todavía tenemos el problema cuándo actualizar los datos. Interrogar Google Analytics cada vez que necesitamos datos no es la solución más sabia. Además, también tenemos análisis de redes sociales, que no podemos calcular cada vez porque algunas API tienen restricciones sobre la cantidad de llamadas que se pueden hacer en un cierto período de tiempo (sí, te miro, Facebook?).
Finalmente, hemos llegado a la conclusión de que debemos tener esta información precalculada en la base de datos del cliente, y luego actualizarla de vez en cuando (tenga en cuenta que si intentamos actualizarlos cada minuto, estaremos a la altura de la base . de datos, así como el servidor de WordPress). Y no se preocupe por almacenar esta información en la base de datos: para cada publicación, solo guardamos el número total de visualización de páginas y valores de participación (es decir, solo almacenamos datos agregados, no toda la información de seguimiento individual). Por lo tanto, el espacio adicional que ocupamos en la base de datos del cliente es mínimo (algunos más postmeta, que eliminamos automáticamente si apaga el complemento y, por lo tanto, indica en ese momento).
Volver al tema de actualizar los análisis solo de vez en cuando y solo si tiene sentido, lo que finalmente implementé es el siguiente:
Permitir a los usuarios calcular los datos analíticos para las últimas publicaciones al activar el análisis en el contenido NELI. De esta manera, puede tener datos válidos desde el primer minuto de uso de nuestro complemento. Reutilice WordPress Chron para recalcular el análisis de acuerdo con este modelo:
Primero, actualice el análisis de contenido publicado hoy.
Una hora después, recoge algunas publicaciones publicadas hace un mes y actualice sus estadísticas.
Una hora después, recoja algunas publicaciones publicadas hace más de un mes y actualice sus estadísticas.
Una hora después, recoja algunas publicaciones desde la parte superior de los análisis y actualice sus estadísticas.
Una hora después, comience el proceso nuevamente desde el principio.
Proporcione la opción de los usuarios para que puedan actualizar la información de análisis en cualquier momento en la configuración de contenido NELI. Esto es útil para los usuarios más exigentes que deseen comenzar solo el proceso de recalculación.
Como puede ver, ejecutamos el proceso solo cada hora, y en cada ejecución solo recalculamos la analítica de un número muy pequeño de publicaciones, de modo que la carga del servidor no se ve afectada y respetamos los límites de la red social. Apis. Además, la selección de publicaciones recalculantes se realiza sabiamente. Para cada publicación, se almacena la fecha del último recalculación de estadísticas. Utilizamos este valor para ordenar publicaciones y actualizar aquellos con datos más antiguos.
Este enfoque funciona bastante bien en la mayoría de las situaciones: cuando se publica nuevo contenido, generalmente recibe más visitas, comentarios y actividades en las redes sociales el primer día de vida. Por lo tanto, todo el modelo que describí antes tiene sentido. En el contenido de Nelio actualizamos las últimas publicaciones con más frecuencia y también las más relevantes (esto por encima de la clasificación), ahorrando algo de tiempo para actualizar el resto de su contenido. ¿Cómo funciona WordPress Cron? Cada vez que se carga una página en WordPress (ya sea una publicación, su página de inicio o cualquier otro contenido accesible a través de una URL de WordPress), se verifica un programa de características programadas para ver si se ejecuta o no. Si hay algunas funciones, se lanzarán asíncronas para que su ejecución no afecte la carga de la página. En WordPress, las tareas son administradas por wp-cron.php. Hay dos tipos de tareas:
Actividades que se ejecutan una vez a una hora preestablecida, como publicar una publicación programada para el jueves a las 10 a.m.
Tareas recurrentes. Estas son tareas que deben realizarse de vez en cuando, como verificar las actualizaciones de complementos o temas.

Para programar una tarea de embarazo, solo tiene que hacer esto:
De esta manera, realizará la función my_task () una hora después de ejecutar este código (puede probarlo directamente en functions.php, por ejemplo). Mire la información del códice sobre la función wp_schedule_single_event.
Y aquí tiene un ejemplo para crear una tarea recurrente que se ejecutará cada vez:
Nuevamente, tiene detalles en Codex para la función wp_schedule_event.Es muy simple, créeme.Si desea un tutorial más detallado, no se lo pierda desde el punto de sitio.Por cierto, si desea ver qué tareas ha programado en su WordPress Chron, puede hacerlo instalando el complemento de control WP.Esto fue muy útil para hacer las pruebas durante el desarrollo del análisis de contenido NELI.Además del WordPress Chron, tiene otras opciones disponibles para ejecutar tareas de fondo de WordPress.Los más populares son estos dos: embarazos asíncronos de TechCrnnch WP.
Procesamiento de antecedentes de WP.
Ambas son bibliotecas que le darán opciones más complejas de las que encontrará con WordPress Chron, pero le recomiendo que eche un vistazo, porque pueden ser más adecuados para sus necesidades específicas. Observaciones finales Si ha llegado al final de esta publicación, ¡saludos! Como has visto, siempre hay mucho trabajo detrás de una funcionalidad concreta. Sorprendentemente, sin embargo, la mayor parte de este trabajo se trata de discutir/decidir cómo hacer las cosas, en lugar de completarlas. El desarrollo de complementos para WordPress tiene sus dificultades. Si no tiene la experiencia necesaria, puede hacer un daño increíble. Debe buscar información e intentar asegurarse de que la opción que ha elegido para resolver cualquier problema dado es “el mejor” (o al menos “el menos malo”). Para hacer esto, tiene más recursos, como preguntarle a su comunidad local, dónde puede compartir sus dudas más complejas o leer el manual de desarrollo de complementos en sí. ¿Qué habría pasado si decidiéramos actualizar las estadísticas cada vez que venga un visitante? Finalmente, deje un comentario para explicar lo que piensa sobre este artículo o detalla cómo usa las tareas de Chron. ¡No te llevará más de un minuto y me harás muy feliz! ? Imagen presentada por Markus Spiske.
WordPress Cron: tareas de fondo sin bloquear su servidor
Tags WordPress Cron: tareas de fondo sin bloquear su servidor
homefinance blog