PHP komut dosyası, iptal MySQL işlem bir süre için, tüm app kilitleri başarısız olmasına neden olur

0 Cevap php

Ben Ajax ile birlikte, bir MySQL veritabanı işlemleri kullanıyorum, ve ben komut dışarı zamanlama ile bazı sıkıntılar yaşıyorum. Yani, burada ne bir özet var:

  1. Sayfada Ajax komut dosyası sunucuya istekte bulunur.
  2. Sunucu isteği alır; komut MySQL hareket başlatır.
  3. Ajax komut dosyası iki saniye sonra zaman aşımı ayarlanır; zaman aşımına; isteği iptal etmek için sunucu söyler.
  4. Server komut ölür; işlem asılı bırakılır.
  5. MySQL uyarılar işlem asılı bırakıldı; bu gerekiyordu, ama önce değil tablolar yarım dakika için kilitlenmiştir ve web sitesine erişmek olamazdı çünkü müşterilerinin bir demet daha az mutlu hale geldi gibi geri alır.

Ne yapmalı?

Ben sunucu komut dosyası sadece verdi iki saniyeden biraz daha fazla zamana ihtiyacı düşünün, bu yüzden ignore_user_abort() her sayfada çağırdı, ve sonra register_shutdown_function() açıkça bir hareketi geri çağırdı eğer istemci aslında iptal edildi.

Bu iyi bir plan var mı? Bir alternatif var mı?

0 Cevap