PHP JavaScript

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.

Unificación del escalonamiento de publicaciones para evitar límites de velocidad en Dev.to
Gerardo Ruiz

Gerardo Ruiz

Author

Share: