Parçalar bir CSV dosyasını okuma

1 Cevap php

Benim kullanıcılar için yeni bir ithalat özellik için, ben LibraryThing ve Shelfari gibi sosyal kitap kataloglama siteleri tarafından oluşturulan CSV dosyalarını okumak için fgetcsv kullanıyorum ve sonra dosyaları içinden ISBN'lerini aramak için Amazon sorguları bir dizi çalıştırın. Kullanıcıların daha sonra kendi yerel raflardan eklemek, belirli ölçütlere uyan başlıkları onaylamak sahip olmak istiyorum.

Bu dosyaların bazıları kayıtları yüzlerce veya binlerce sahip olacak ve ben Amazon ile saniyede en fazla 1 arama ortalama olamaz. Ben de kullanıcıların Biz doğru kendi kitaplarını uyumlu ettik onaylamak istiyorum. Ben 10 veya 20 kayıtları parçalar CSV dosyasını işlemek ve onaylamak için kullanıcılar için 'hit' göstermek gerektiğini düşünüyorum. Ama ben bunu etkin bir biçimde nasıl anlamaya olamaz.

Ben, bir diziye CSV dosyasını okumak, örneğin, sadece ISBN'lerini seçerek, ve ben Amazon karşı 10 veya 20 kayıtları test dizisinde basit bir döngü kullanabilirsiniz biliyorsunuz. Ama nasıl kullanıcı kayıtlarının toplu kabul veya reddetmek için izin ve sonra CSV bir sayfayı yeniden dosya yeniden fgetcsv çalıştırmadan 10 veya 20 daha fazla incelerim?

Bir dizi sayfa yükleri arasında kalıcı sağlamak için bazı basit bir yolu var mı? Ya da belki ben döngü kendi içinde kullanıcı girişini kabul etmek duraklama

1 Cevap

Why not just do a 'delayed' import method? Allow the CSV import, process the data in a 'temporary storage' database, and on the backend you lookup ISBN's via the Amazon process.

Kullanıcı, vb "kayıtlarınız işleniyor, biz doğrulayarak bitirdikten sonra bunları gözden istenecektir" ile istenir;

Bu noktada yerel olarak listenizin geçmesi ve Amazon 1/saniye ISBN arama ile sınırlı değildir. Ben bir kullanıcı 10/20 sonra sonraki sayfa için daha fazla beklemek işlenirken orada oturmak isterim şüphe ve sonraki.

Yani süreç çok gibi dışarı katlamak gerekir:

  1. Kullanıcı ithalat verileri (uç bir cronjob / süreç kullanıcı bekleyin yapmadan kayıtları birer birer gider iken).
  2. Kullanıcı (vb bildirilir) Veri / Kullanıcı zaman süre sonra geri geliyor doğrulamak için geri gelmek için istemde
  3. Kullanıcı verilerinin listesinde geçer ve (paginated) bunu doğrular, kabul edilmesi üzerine size (geçerli canlı verileri) son veritabanına / kabul geçerli girişlerini taşımak.
  4. Kullanıcı 100.000 kayıtlarında 100 @ durdurmak istiyorsa onlara bu seçeneği vermek ve onlar doğrulama 'kuyruğa' bu tür var.

Ses Hows? Biraz daha fazla iş ama bu gibi büyük veri girişlerini işlemek için en iyi yaklaşım gibi görünüyor.