Unificación del escalonamiento de publicaciones para evitar límites de velocidad en Dev.to
El proyecto devlog-ist/landing se enfoca en la página de destino del blog para desarrolladores. Una de las tareas clave es la publicación eficiente de contenido en múltiples plataformas. Este post trata sobre la unificación de la lógica de escalonamiento de publicaciones para evitar los límites de velocidad de Dev.to.
El Problema
Anteriormente, el escalonamiento de publicaciones en diferentes plataformas se gestionaba de forma independiente. Esto causaba problemas, especialmente con Dev.to, que tiene límites de velocidad estrictos. Si las publicaciones se enviaban demasiado rápido, la cuenta podría verse limitada, afectando la visibilidad del contenido.
La Solución
La solución implementada implica extraer la lógica de escalonamiento del LinkedinPublishingCoordinator a un servicio compartido, llamado PostStaggeringService. Este servicio considera todas las plataformas al calcular los intervalos de tiempo entre las publicaciones, asegurando que no se excedan los límites de velocidad de ninguna plataforma.
Refactorización y Reutilización
El DevtoPublishingCoordinator ahora utiliza este servicio de escalonamiento en lugar de publicar inmediatamente. Esto significa que las publicaciones a Dev.to se envían siguiendo un cronograma calculado para evitar los límites de velocidad. El PostGenerationServiceV2 ahora llama a scheduleStaggered en lugar de publishNow para Dev.to.
// Ejemplo ilustrativo del nuevo servicio de escalonamiento
class PostStaggeringService
{
public function schedulePost(array $platforms, DateTime $publishTime): void
{
// Lógica para calcular el tiempo de publicación escalonado
// considerando los límites de velocidad de cada plataforma.
echo "Publicación programada para " . $publishTime->format('Y-m-d H:i:s') . " en " . implode(',', $platforms) . "\n";
}
}
$staggeringService = new PostStaggeringService();
$staggeringService->schedulePost(['dev.to', 'linkedin'], new DateTime());
El Resultado
La unificación de la lógica de escalonamiento ha resultado en una distribución más uniforme de las publicaciones en todas las plataformas, evitando los límites de velocidad de Dev.to y mejorando la eficiencia general del proceso de publicación. Esto asegura que el contenido llegue a la audiencia prevista sin interrupciones.