
Durante un año y medio alteré a los contribuyentes básicos y a los autores de arado sobre el procesamiento de antecedentes. Hasta el punto en que Krogsgard incluso llevó mi juego para esto en la fiesta de Aftercamp. “Aquí está Brad, hablando sobre el procesamiento de antecedentes nuevamente”. La broma, pero es verdad. Claramente, creo que es un tema importante, pero me sorprendió darme cuenta de que no hablé de ello en este blog. Ash escribió sobre el procesamiento de antecedentes hace poco más de un año. Presentó una biblioteca maravillosa que ha codificado para la descarga de WP S3 y la lanzó como una biblioteca en Github para ser utilizada por otros. No fui el único que quedó impresionado. Los formularios de WooCommerce y Ninja también lo usan.
La biblioteca es genial, pero me di cuenta de que era un problema. Si cada tema/complemento implementa su propia cola de procesamiento de fondo en lugar de compartir una sola cola, podríamos obtener muchos trabajos al mismo tiempo e influir en el rendimiento del servidor. A medida que cada vez más temas/complementos comienzan a hacer su propio procesamiento de antecedentes (ya sea que usen esta biblioteca o hagan la suya), mayor mayor este problema. Creo que la mejor solución es obtener el procesamiento de fondo en el núcleo de WordPress, para que todos los temas/complementos puedan compartir una sola cola y asegurarse de que no afectemos el rendimiento del servidor. Y así fue como comenzó mi cruzada.
En Pressnomics, tuve una gran conversación con Mike Schroder. Presentó una muy buena manera de núcleo: encontrar una función que WordPress necesita básica y que requiere un procesamiento de fondo. En otras palabras, ¡Pidgyback! Así es exactamente como los problemas de optimización de imágenes se volvieron básicos el año pasado: tomando imágenes receptivas. Para el procesamiento de antecedentes, propuso encontrar una alternativa al procesamiento de imágenes (OTFIP) sobre la marcha. UAU, parece que OTFIP es un problema que enfrentamos regularmente para la descarga de WP S3. Esto podría ser una especie de “dos pájaros, una piedra”. Las estrellas se alinearon. Procesamiento sobre la marcha de la imagen (OTFIP) Escribí sobre OTFIP hace solo unos meses y expliqué que tiende a causar más problemas que resueltos. Por resumen, el principal problema que OTFIP resuelve es reducir la generación (y el almacenamiento) de imágenes que nunca se utilizarán. Si cada tema/complemento usa add_image_size () para generar las dimensiones de la imagen que necesitan, el número de dimensiones de la imagen aumenta rápidamente. ¿No me crees? Tenemos una pequeña competencia entre los miembros del equipo para identificar la instalación de WordPress con la mayoría de las dimensiones de imágenes grabadas. ¡Hasta ahora Ash gana con 49!
Para ser claros, WordPress genera 49 imágenes de diferentes tamaños cuando se carga una imagen en esa instalación de WordPress. Es fácil esperar a la generación de imágenes. Me iré y adivinaré que nunca se usarán 29 imágenes sólidas y, sin embargo, ocupan espacio en el disco duro. Este es un ejemplo extremo, pero generalmente vemos instalaciones de WordPress con aproximadamente 20 tamaños de imagen. OTFIP FTW Para resolver este problema, algunos desarrolladores incluyen bibliotecas OTFIP en sus temas/complementos y generan imágenes del tamaño exacto que necesitan cuando lo necesitan. Por ejemplo, si ha utilizado la popular biblioteca AQUA RESIZER, puede llamar a la siguiente función en su tema/complemento: ?> Si la imagen redimensionada aún no existe, se generará y guardará con el original en el sistema de archivos. Esto suena genial, pero el tiempo de carga de la página sufre mucho, porque tiene que esperar a que se genere la imagen antes de cargar la página. Y si una página tiene muchas de esas llamadas (por ejemplo, una para cada publicación de blog en una página de archivo), puede ser una espera ridículamente larga e incluso puede expirar. Además, el cambio de tamaño de la imagen es una operación que requiere mucha memoria y procesador. Entonces, ¿qué le sucede al servidor cuando se cargan más de estas páginas al mismo tiempo? ¡

Finalmente, adivine qué sucede cuando la imagen original se elimina de la biblioteca de medios. Sí, la imagen redimensionada se queda atrás, porque el núcleo de WordPress no lo sabe. Además, el núcleo de WordPress no puede agregar las imágenes redimensionadas al scSet, por lo que no hay imágenes receptivas. Lo que necesitamos es una solución que no afecte el tiempo de carga de la página, tenga en cuenta los recursos del servidor y trabaje perfectamente con el núcleo de WordPress como lo es hoy. Nace la cola de procesamiento de la imagen
En el Día de Contributor de WordCamp US de diciembre pasado, decidí tratar de armar una biblioteca de procesamiento de imágenes que tenga todos los beneficios de OTFIP, pero sin ningún negativo. Y voilà, después de unas horas, nació la cola de procesamiento de imágenes.
Su uso es bastante simple. Simplemente incluya un archivo para cargar la cola de procesamiento de imágenes y las adicciones: requirir_once templash. ‘/IImage-processing- cole/imagen-procesamiento- queue.php’; Luego puede llamar a la función ipq_get_theme_image () de sus plantillas de tema/complemento para eliminar una imagen: echo ipq_get_theme_image ($ post_id, matriz (600, 600, falso), matriz (1280, 1280, falso), array (1600, 1600, 1600, 1600, falso),), array (‘class’ => ‘Header-Bank’)); Si ya se han generado todas las imágenes, el resultado se vería así:

! .jpg “> Si aún no se ha generado una imagen, se deja fuera y se coloca en la cola para generar en el fondo. Entonces, si esta es la primera vez que se ejecuta la función anterior, puede alcanzar esta salida:

Si las imágenes existen o no, cargamos la página de inmediato y hacemos la generación de imágenes en el fondo. No deje de cargar la página para generar imágenes. Además, cuando se genera un nuevo tamaño de la imagen, agregamos metadatos en el archivo adjunto, de modo que el núcleo de WordPress entienda que la imagen redimensionada existe. Esto permite que WordPress Core agregue automáticamente el tamaño de la imagen generada a SRCSET al generar la etiqueta de imagen. También permite que la WordPress del núcleo elimine las imágenes generadas cuando la imagen original se elimina de la biblioteca de medios. Los metadatos están exactamente en el mismo formato que los metadatos agregados para el tamaño de la imagen registrada con add_image_size (). Cualquier temas/complementos que usen metadatos de tamaño de imagen pueden usarlos y, por lo tanto, usar el tamaño de la imagen generada.

La siguiente parada, WordPress Core le gustaría ver esto introducido en el núcleo de WordPress con la biblioteca de procesamiento. Haría las imágenes mucho más fáciles de administrar para los temas de WordPress/desarrolladores de arado y, con suerte, conducirían al abandono total de las bibliotecas OTFIP. No estoy seguro de cómo algo encajaría en este tipo en los nuevos ciclos de lanzamiento de WordPress, pero estoy seguro de que continuaré molestando a las personas al respecto. Si es autor de Theme/Plugin, considere usar la cola de procesamiento de imágenes en lugar de una biblioteca OTFIP la próxima vez. Obtenga todos los beneficios sin ninguno de los negativos. Y cuanto más se usa esta biblioteca, más fácil será introducirla en el núcleo de WordPress. Por supuesto, todavía hay mucha mejora aquí. Ash actualmente está trabajando en la biblioteca de procesamiento de antecedentes, agregando la capacidad de deshabilitar al trabajador HTTP y generar más trabajadores de cola a través de CLI. Esto es ideal para las personas con control total sobre sus servidores que desean trabajadores más confiables. También reconstruye el fondo de la cola, guardando los trabajos en la base de datos de forma predeterminada, pero le permite cambiar en cualquier fondo de cola. Por ejemplo, puede usar Redis para almacenar sus trabajos. Si encuentra un error en la cola de procesamiento de imágenes o en el procesamiento de fondo de WP, abra un problema (o una solicitud de extracción) en el depósito de GitHub apropiado. ¿Has usado bibliotecas OTFIP? ¿Darías la oportunidad de procesar las colas de procesamiento de imágenes? ¿Pero el procesamiento de fondo? ¿Qué le gustaría que sucediera allí?
Le presentamos la cola de procesamiento de imágenes WP – Processing Images de la manera correcta
Tags Le presentamos la cola de procesamiento de imágenes WP - Processing Images de la manera correcta
homefinance blog