Saya punya beberapa pertanyaan untuk pengembang magento berpengalaman:
Apakah mungkin untuk meningkatkan kecepatan api sabun magento v1? Ketika meminta data, biaya cepat 1,5 detik untuk Magento untuk mengkompilasi informasi sederhana seperti alamat pelanggan dll ...
Untuk meminta beberapa kemungkinan data yang relevan, node dapat dengan cepat menghabiskan biaya sekitar 5-7 detik.
Sekarang saya sudah melakukan permintaan tersebut melalui permintaan AJAX sehingga antarmuka halaman dimuat dengan cepat, tetapi peningkatan kecepatan akan lebih baik.
Atau akan lebih baik untuk menulis aplikasi saya sendiri untuk memberi saya informasi yang relevan langsung dari magento db? Ini tidak rumit dari db dan jika saya melakukan kueri langsung memuat dalam 100 detik dengan hasil ...
Satu-satunya pertimbangan yang saya miliki dengan opsi itu adalah:
- Bagaimana jika magento memperbarui dan mengubah skema basis datanya?
- Atau apakah pengaturan basis data magento relatif mudah di-upgrade / kompatibel ke bawah?
Apakah ada yang punya pengalaman dengan ini dan kisah sukses atau faillure mereka? Saya perlu membuat keputusan yang terinformasi untuk dapat mengetahui bagaimana melanjutkan.
sumber
Jawaban:
Saya telah mengalami masalah ini secara luas, dan saya telah mengatasinya dengan hanya bekerja dengan objek Magento secara langsung. Saya pikir ada kekhawatiran tentang perubahan kode dan yang lainnya yang Anda jelaskan, tetapi sebagian besar kode saya ada dalam skrip sekali pakai untuk memuat data lama, hal-hal seperti itu, jadi itu hanya masalah kecil. Bekerja dengan objek Magento secara langsung juga memiliki manfaat samping membuat saya belajar internal sedikit lebih banyak daripada saya hanya dengan SOAP API, juga - kurva belajar lebih curam pasti, tapi saya merasa sedikit lebih tahu tentang apa yang terjadi di sana daripada jika saya hanya pernah menggunakan API SOAP.
Opsi lain yang kami coba adalah caching data menggunakan Memcached (Atau sesuatu seperti Redis akan bekerja juga), meskipun Anda sekarang harus khawatir tentang seberapa sering memperbarui cache, dari mana, dan hal-hal seperti itu. Tapi, itu memang mencapai tujuan mengambil data lebih banyak, lebih cepat. Saya pikir apakah ini pilihan yang baik atau tidak tergantung pada apa yang Anda coba lakukan.
sumber
$order = Mage::getModel('sales/order')->load($order_id);
, pada dasarnya. Ada satu atau dua cuplikan di utas forum ini yang mungkin menggambarkan lebih banyak: magentocommerce.com/boards/viewthread/18629Mempercepat api SOAP akan menjadi sulit. Anda selalu dapat memasukkan beberapa perangkat keras tambahan (server MySQL yang lebih cepat) atau menjalankan toko pada NginX yang akan membuat Anda beberapa milidetik, NginX lebih baik dalam menangani permintaan http dalam jumlah besar. Caching tidak akan banyak membantu karena respons sebagian besar panggilan akan berbeda setiap kali.
Membangun API Anda sendiri dari awal menggunakan model Magento Core mungkin merupakan solusi tercepat karena Anda dapat mengubah kode untuk meningkatkan kinerja dengan hanya memuat apa yang Anda butuhkan. Dari pengalaman saya menggunakan kelas inti tidak banyak yang berubah antara katakanlah versi 1.5 dan 1.7
Sunting: Saya lupa, Kemenangan cepat kecil bisa datang dari mengaktifkan kompresi gzip output di file htaccess atau php.ini atau jika Anda merasa sanggup memindahkan api SOAP ke server lain menggunakan database yang sama jika database MySQL tidak kemacetan
sumber