Veritabanı üzerinde eşzamanlı yüklenenler Taşıma

4 Cevap php

Benim web uygulaması, kullanıcıların sunucuya aynı anda fotoğraflardan oluşan bir demet yüklemek için izin verir, ve sonra bir veritabanında saklar. Ilk fotoğraf yükleme tamamlandığında, bugünün tarihine göre varsayılan bir albüm oluşturun ve buna eklemek gerekir. Ancak, photo1 tamamlarsa, albümün arar ve onu oluşturmak için karar bu yüzden bulamıyorum, ama olabilir önce, photo2 tamamlar ve de çok daha sonra her ikisi de aynı albüm oluşturmak için deneyin bulamıyorum ne başarısız bir neden? Bu muhtemelen çok çok olası olacaktır, ama herhalde olabilirdi. Ya da çoğu web sunucuları bir seferde sadece tek bir PHP komut işlem?

Bu geçerli ve iyi bir çözüm olurdu:? Yerine albüm ilk varsa photo1 denetimi, sadece onu oluşturmak için çalışır. Bu (giriş yinelenen) bir hata 1062 geri atarsa, SONRA onu seçer. Alıcı hatalar büyük bir performans hit olarak gelecektir eğer o zaman bunu düşünmek durumunda ilk bitirir önemli olmamalı ... Ben sadece bilmiyorum. Ben 200 fotoğraf yükleme ediyorsam, o zaman bunların 199 insert sorgusu başarısız, ve sonra seçin çalışacağız. Diğer bir çözüm düzgün çalışıyorsa, 199 başarılı olur ve bir özleyeceğim.

Düşünceler?

4 Cevap

Hem de birleştirmek

Join yok eğer varsa kontrol edin ve

değilse bir tane oluşturmak için deneyin

yine şeyi başlatmak işe yaramazsa

Biz fotoğraf ile ilgisi olmasa da benzer bir şey var ama biz sadece onları işlemeden önce gönderilecek TÜM öğeler için bekleyin. Bu ilk aşama alanında tutmak anlamına gelir ama diğer sorunu çözer.

Neden ilk albümü oluşturmak ve sadece içeriği varsa bunu göstermek değil?

Yani komut mantığı gibi bir şey olacaktır:

create album<date>
while more images
    upload next image
    add to album<date>
voila

Onlar bir albüm yapmak ve bunu kullanmak yoksa bu şekilde, bu görüntüler asla. Temizlenecek tüm boş albümleri bir gün veya ancak uzun sonradan bir bakım komut urn olabilir.

Bu işlem, işleme ve senkronizasyon tüm hakkında ne olduğunu. Dil (PHP) işlem tutuşu ve senkronizasyon sağlamak değilse, o zaman bu sizin için dikkat çekmek için veritabanını kendisi kullanabilir.

Ben zaten bu var - her isteği bu albüm başarılı oluşturmak için girişimi olduğundan emin olmak için kontrol etmelisiniz. Başarısız olursa, o zaman başka bir işlem / istek zaten oluşturulmuş, görmek için bakmak, ve o kullanabilirsiniz.