Eu me deparei com isso tanto com módulos de contribuição de terceiros quanto com algumas de minhas próprias operações. Estou curioso sobre as várias maneiras de acelerar minhas operações em lote / contrib ?
Suponha que eles trabalhem com nós (importação / atualização etc.) e estamos lidando com listas de análise de nós no intervalo de mais de 10.000 (embora eu tenha tido que lidar com 15 milhões de linhas .. o que sim - estou apenas ferrado. .)
É mais rápido anexar ao trabalho agupals cron.php e executar "headless"? Usando Drush? ou isso é simplesmente uma questão de como a análise rápida e eficiente posso desenvolver meu código e não há influências externas ou dicas de otimização específicas de lotes ...
Atualmente, eu executei operações que (usando algum cálculo aproximado) podem levar mais de 24 horas ...
Obrigado!
fonte
Toda chamada em lote é uma solicitação HTTP. Portanto, você precisa encontrar a combinação perfeita de quantas iterações pode processar antes que outra solicitação HTTP seja acionada. Duas coisas a considerar são memória e tempo máximo de execução. Você desejará processar o maior número possível de iterações por lote para reduzir o número de solicitações HTTP, pois elas provavelmente são as culpadas pelo seu lote lento.
Se o lote for muito pesado para ser executado com eficiência, você pode tentar usar uma fila. Há uma boa apresentação de lote x fila aqui http://sf2010.drupal.org/conference/sessions/batch-vs-queue-api-smackdown . As filas não fornecem feedback do usuário e podem ser executadas em paralelo.
Se você precisar de feedback do usuário, está vinculado ao lote, mas pode até usar a fila no lote para tentar otimizá-lo.
fonte
Como outros já disseram, o Drush é uma boa solução, mas uma fila é uma ótima ferramenta para usar. A API de lote no Drupal 7 usa a API de fila interna incorporada. Portanto, se você estiver usando o MySQL, seu processo poderá ter um gargalo. Porém, a API de fila do Drupal 7 é conectável, portanto você pode usar outro sistema de filas como beanstalkd.
fonte
Se você pode fazê-lo paralelo, é um bom começo. Aqui estão alguns dos meus pensamentos sobre isso, pois eu usei 4 threads para rastrear mais de um milhão de páginas antes (via impulso). Procurando torná-lo generalizado agora. http://groups.drupal.org/node/126624
fonte