Ben bir php komut dosyası çalıştıran ediyorum:
- bir miktar almak için yerel bir veritabanı sorguları
- Yukarıda miktarı + x ile harici bir veritabanını güncellemek için bir kıvırmak deyimi yürütür
- kıvırmak deyimi idam edildiğini yansıtan yeni bir satır eklemek için tekrar yerel veritabanını sorgular.
Ben yaşıyorum sorunlardan biri kıvırmak deyimi yürütmek için 2-4 saniye sürer, bu yüzden aynı anda aynı komut dosyası çalıştıran aynı şirketten iki farklı kullanıcıların olması, kıvırmak komutun yürütme zamanı neden olabilir dış veritabanında güncellenir ne olması gerektiğini uyumsuzluğa. Kıvırmak deyimi henüz ilk kullanıcı dönmedi ... bu yüzden ikinci bir kullanıcı yanlış rakamlar kapalı çalışıyor, çünkü bu olduğunu.
Ben burada en iyi seçeneklerden emin değilim, ama temelde aynı anda yürütülüyor iki veya daha fazla kıvırmak ifadeleri önlemek gerekir.
Ben kıvırmak deyimi o anda yürütülmekte olduğunu gösterir veritabanında bir değeri saklamak düşündüm ve onun tamamlanana kadar yürütülüyor başka kıvırmak ifadeleri engellemek. İlk kıvırmak deyimi idam edildikten sonra, daha sonra veritabanı bayrağı güncellenir ve bir sonraki çalıştırabilirsiniz. Bu alan 'kilitli' ise, o zaman (5) saniye boyunca kodu ve uyku aracılığıyla döngü olabilir, ve bayrağı sıfırlamak olup olmadığını tekrar kontrol edin. (3) döngüler sonra, sonra (ben curl 5 saniyeden daha uzun sürer görmedim) otomatik bayrağı sıfırlamak ve işleme devam edin.
Bu yaklaşan başka (daha şık) yolları var mı?