Cronjob vs mysql tetikleyici / olaylar

3 Cevap php

Ben benim kullanıcıların autobiddings sınırsız miktarda koyun bakalım bir açık artırma sitesi var.

Bu autobiddings şey izlemek için veritabanını her saniye kontrol etmek için vardır.

Bir 60 saniye döngü php script çalıştırır her dakika mysql tetikleyici olaylar ya da kullanıcıya cronjob kullanmak daha iyidir eğer benim sorudur.

I mysql tetikleme olayları kullanıyorsanız olayların yüzlerce birbirinden üzerinde yığınlar, ve farklı zamanlarda ateş olacaktır. Bu bile mümkün mü? ANd enourmous olmak goning sunucu yük değildir. Ben bir schedueled olay varken veritabanı kilitli olacağı yerde duydum. Ben btw InnoDB tabloları kullanıyorum.

Ben biraz bir bu Toppic biraz ışık tutabilir umuyoruz.

Saygılar!

3 Cevap

Sen iyi sonsuza dek çalışır ve veritabanı saatler ayrı bir komut dosyası çalıştırmak istiyorum. Bu şekilde cron'u gerekmez. Ne tetikler büyük bir miktar.

Ama tüm sorunuzu yeniden isteyebilirsiniz. Aslında tekliflerinizi her saniye güncellemek için gerekli değildir. Birisi aslında bir açık artırma için yaptığı tarayıcı puan veya manuel teklif yaptığında, yalnızca geçmiş x dakika / saat doldurmanız gerekmektedir. Tüm autobids ise bir geriye kolaylıkla ileriye hesaplayabilirsiniz.

Veritabanı kolları isteklerini diğer isteği farksız planlanıyor. Fakat birçok planlanmış istekleri onlara bunu yapmak için nadir değildir tabanı kilidi yok veritabanı ve tablo bakım işlemlerini içerir.

Lütfen sistemleri gibi bir kullanıcı tarafından eylemler için tetikleyicileri kullanarak bunu yapmanın teknik tercih şekilde tepki var olduğunu söyledikten sonra. Sitenizin yüksek yükler var Pratikte bu performans sorunlarına neden olabilir - bir zamanlanmış olay kullanarak aynı sorun neden olabilir rağmen.

Benim tavsiye saklı yordamlar mantık koymak ve tetikleyiciler Bu saklı yordamları çağırmak için. Eğer tetikleyicileri tutmak olmadığını bulmak zaman zaman tetikler çıkarın ve bir cron işi gelen saklı yordamlar çağırabilir.

Ben muhtemelen biraz farklı oto-teklif sorununa çözüm modeli olacaktır:

Nasıl bir olay-temelli bir yaklaşım hakkında? Eğer kullanıcıların otomatik teklif istekleri depolamak ve eğer birisi aslında önceden otomatik tekliflerini sıraya işlemek bir nesneye teklifleri.

Bu şu faydaları vardır:

  • veritabanı üzerinde yük organik dağıtılır
  • Eğer sadece gerçekten anda gerekli aramaları yapmak.
  • gerçek-zamanlı ve kene-tabanlı olmayan
  • bunun yerine küresel yerel olduğu için iş / uygulama mantığı hakkında akıl kolaydır