Saya sudah mengalami ini baik dengan modul kontrib pihak ke-3 serta beberapa operasi saya sendiri. Saya ingin tahu tentang berbagai cara untuk mempercepat operasi batch saya / contrib ?
Asumsikan mereka bekerja dengan node (impor / perbarui dll) dan kita berhadapan dengan parsing daftar node dalam kisaran 10.000+ (walaupun saya harus berurusan dengan 15 juta baris .. yang ya - saya hanya mengacaukannya. .)
Apakah lebih cepat melampirkan pekerjaan drupal cron.php dan menjalankan "headless"? Menggunakan Drush? atau apakah ini hanya sebuah pertanyaan tentang seberapa efisien dan cepatnya penguraian saya dapat mengembangkan kode saya dan tidak ada pengaruh luar atau sejumlah kiat pengoptimalan khusus ...
Saat ini saya sudah menjalankan operasi yang (menggunakan beberapa perhitungan kasar) bisa memakan waktu 24+ jam ...
Terima kasih!
sumber
Setiap panggilan batch adalah permintaan HTTP. Jadi, Anda perlu menemukan perpaduan sempurna dari berapa banyak iterasi yang dapat Anda proses sebelum permintaan HTTP lain dipecat. Dua hal yang perlu dipertimbangkan adalah memori dan waktu eksekusi maksimal. Anda akan ingin memproses sebanyak mungkin iterasi per batch untuk mengurangi jumlah permintaan HTTP karena kemungkinan besar penyebabnya adalah batch lambat Anda.
Jika batch Anda terlalu berat untuk berjalan secara efisien, Anda bisa mencoba menggunakan antrian. Ada presentasi batch vs antrian yang baik di sini http://sf2010.drupal.org/conference/sessions/batch-vs-queue-api-smackdown . Antrian tidak memberikan umpan balik pengguna dan dapat dijalankan secara paralel.
Jika Anda memerlukan umpan balik pengguna, Anda terikat pada batch, tetapi Anda bahkan bisa menggunakan antrian dalam batch Anda untuk mencoba mengoptimalkannya.
sumber
Seperti yang dikatakan orang lain, Drush adalah solusi yang baik, tetapi antrian adalah alat yang hebat untuk digunakan. Batch API di Drupal 7 menggunakan API Antrian inti bawaan jadi jika Anda menggunakan MySQL proses Anda bisa macet di sana. Tapi, Antrian API Drupal 7 adalah pluggable, jadi Anda bisa menggunakan sistem antrian lain seperti beanstalkd.
sumber
Jika Anda bisa membuatnya paralel, itu awal yang baik. Berikut adalah beberapa pemikiran saya tentang ini karena saya telah menggunakan 4 utas untuk merayapi lebih dari satu juta halaman sebelumnya (melalui dorongan). Mencari untuk membuatnya digeneralisasi sekarang. http://groups.drupal.org/node/126624
sumber