Me he encontrado con esto tanto con módulos de contribución de terceros como con algunas de mis propias operaciones. ¿Tengo curiosidad por las diversas formas de acelerar mis operaciones por lotes / contrib ?
Supongamos que funcionan con nodos (importación / actualización, etc.) y estamos lidiando con listas de análisis de nodos en el rango de más de 10,000 (aunque he tenido que lidiar con 15 millones de filas ... lo que sí, solo estoy jodido). .)
¿Es más rápido adjuntar a drupals cron.php trabajo y ejecutar "sin cabeza"? Usando Drush? ¿O es simplemente una cuestión de qué tan eficiente y rápido análisis puedo desarrollar mi código y no hay influencias externas o consejos de optimización específicos del lote ...
Actualmente me he encontrado con operaciones que (usando algunos cálculos aproximados) podrían tomar más de 24 horas ...
¡Gracias!
fuente
Cada llamada por lotes es una solicitud HTTP. Por lo tanto, debe encontrar la combinación perfecta de cuántas iteraciones puede procesar antes de que se active otra solicitud HTTP. Dos cosas a considerar son la memoria y el tiempo máximo de ejecución. Deberá procesar tantas iteraciones como sea posible por lote para reducir la cantidad de solicitudes HTTP, ya que es probable que sean el culpable de su lote lento.
Si su lote es demasiado pesado para ejecutarse eficientemente, puede intentar usar una cola en su lugar. Hay una buena presentación de lote vs. cola aquí http://sf2010.drupal.org/conference/sessions/batch-vs-queue-api-smackdown . Las colas no proporcionan comentarios de los usuarios y pueden ejecutarse en paralelo.
Si necesita comentarios de los usuarios, está vinculado al lote, pero incluso podría usar la cola en su lote para tratar de optimizarlo.
fuente
Como otros han dicho, Drush es una buena solución, pero una cola es una gran herramienta para usar. Batch API en Drupal 7 utiliza la API de cola central incorporada, por lo que si usa MySQL, su proceso podría verse atrapado allí. Pero, la API de cola de Drupal 7 es conectable, por lo que podría usar otro sistema de cola como beanstalkd.
fuente
Si puede hacerlo paralelo, es un buen comienzo. Estos son algunos de mis pensamientos sobre esto, ya que he usado 4 hilos para rastrear más de un millón de páginas antes (a través de impulso). Buscando hacerlo generalizado ahora. http://groups.drupal.org/node/126624
fuente