J'ai une application drupal qui a besoin de publier une partie de son contenu - il y a un frontal wysiwyg flash qui communique avec un backend drupal à travers le module de services. L'utilisateur peut télécharger des images/vidéos, les placer et les manipuler en flash, et quand ils auront fini, exporter une version statique. Dans le cadre de ce processus d'exportation, l'application doit effectuer un traitement sur les éléments médias - redimensionnement & etc, donc j'ai utilisé l'API batch pour qu'elle ne traite que les éléments à la fois pour arrêter les délais d'attente et ainsi de suite. Cela fonctionne principalement bien, mais je suis en train de me défaire de la façon dont batchapi semble fonctionner. Ce que je suis en train de faire est la suivante:Utilisation drupal batch api avec services
- L'outil flash appelle le service d'exportation
- Le service d'exportation crée un nœud qui représente cette exportation, et retourne un node_id
- Les incendies de services d'exportation au large de la exporter en arrière-plan, une fois qu'il est fait, il change un statut dans le nœud
- Pendant ce temps, l'outil flash interroge l'application pour voir quand la publication est terminée, et notfies l'utilisateur.
Ce qui semble me faire décoller au moment on tire hors du processus de traitement par lots en arrière-plan, sans déclencher la chose redirect ce lot fait quand je l'appelle batch_process()
, pour que je puisse retourner l'identifiant de nœud à clignoter et initier le lot en même temps.
Espérons que cela a du sens - des suggestions/idées? Ou est-ce que je le fais mal?
Vous m'avez donné des indices, je pense, mais il me faut encore un peu de temps pour comprendre. Il y a quelque chose à propos de la mise à l'état non progressif du lot ici: http://drupal.org/node/638712 mais je ne suis pas sûr de l'avoir complètement saisi. – Andrew
mais alors un lot non-progressif ne me sert à rien dans ce cas. hrm. – Andrew
Yup - si je comprends bien le code dans 'batch_process()' et '_batch_process()', mettre '$ batch ['progressive']' sur FALSE provoquera le traitement du lot en une seule fois, perdant ainsi la main avantage d'éviter les délais d'attente. –