Maison >développement back-end >tutoriel php >API de file d'attente de Drupal 8 - manuel puissant et file d'attente de cron
API de file d'attente de Drupal 8: traitement des tâches asynchrones pour les performances améliorées
Cet article explore l'API de file d'attente de Drupal 8, un outil puissant pour gérer les tâches longues de manière asynchrone. Au lieu de s'enliser une seule demande de page, l'API de file d'attente permet de traiter les tâches plus tard, généralement pendant les exécutions Cron, mais aussi manuellement. Ceci est crucial pour les opérations qui pourraient avoir un impact négatif sur l'expérience utilisateur si elles sont exécutées immédiatement.
Composants clés:
L'API de file d'attente comprend plusieurs composants clés:
QueueInterface
Implémentation: Le composant central, responsable de la création, de la réclamation et de la suppression des éléments de file d'attente. La valeur par défaut, DatabaseQueue
, garantit que les éléments sont traités au moins une fois et dans l'ordre (FIFO). QueueWorker
implémentant QueueWorkerInterface
. Le QueueWorkerManager
instancie et gère ces travailleurs. Exemple pratique: Node Publisher Fitre
Une application pratique est un module personnalisé (comme l'exemple "Node Publisher Fitre" - NPQ) qui ajoute des nœuds non publiés et créés à une file d'attente pour une publication ultérieure. Cette publication peut se produire lors d'une exécution Cron ou via l'action administrative manuelle.
Implémentation du module NPQ (simplifié):
Le module NPQ démontre la création et le traitement des éléments de file d'attente.
Création d'élément de file d'attente (hook_entity_insert
): Lorsqu'un nœud non publié est enregistré, ce crochet ajoute un élément de file d'attente contenant l'ID de nœud à la file d'attente désignée (par exemple, `` CRON_NODE_PUBLISHER 'ou' manual_node_publisher ') .
CRON Queue Worker (CronNodePublisher
): Ce travailleur traite la file d'attente 'CRON_NODE_PUBLISHER'
Travailleur de file d'attente manuelle (): ManualNodePublisher
Ce travailleur traite la file d'attente 'manual_node_publisher' lorsqu'elle est déclenchée manuellement (par exemple, via un formulaire d'administration). Les deux travailleurs exploitent une classe de base commune () pour les fonctionnalités partagées. NodePublishBase
Considérations importantes:
Conclusion:
L'API de file d'attente de Drupal 8 offre un mécanisme robuste pour une gestion efficace des tâches asynchrones. En déchargeant les processus de longue durée, il protége l'expérience utilisateur et améliore les performances globales du site. L'exemple NPQ met en évidence l'application pratique et la mise en œuvre de cette puissante fonction API.
Questions fréquemment posées (FAQ):
La section FAQ du texte d'origine fournit un aperçu complet de la fonctionnalité, de l'utilisation, de la gestion et de la surveillance de l'API de file d'attente Drupal 8. Il couvre des sujets tels que la création de files d'attente, l'ajout et le traitement des éléments, la gestion des erreurs, la hiérarchisation (ou l'absence de celle-ci), la surveillance et la compatibilité avec Drupal 7. Ces informations restent précieuses et pertinentes et sont donc conservées dans son intégralité.
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!