Bir MySQL veritabanı değişiklik ya da yenileme dinlemek php miyim?

7 Cevap java

Im bir web sitesi için gerçek zamanlı arama işlemek için en iyi yolu bulmaya çalışıyorum. Ben kadar gelebilir tek çözüm sunucu veritabanında yeni bir şey için her birkaç saniyede bir kontrol tutmak için, ama bu benim için çok pratik görünmüyor.

7 Cevap

MySQL tetikler destekler 5.0.2 itibariyle: http://dev.mysql.com/doc/refman/5.0/en/triggers.html

Ama ne yazık ki ben (Oracle ben xp_ bulunuyor düşünüyor olurdum) app bildirmek için onlara "yararlı" bir şey olup olamayacağını bilmek yeterli MySQL bilmiyorum. Eğer sadece tek bir yerde yoklamak zorunda böylece en azından bir tek, denetim gibi tabloya bir satır yazabilirsiniz.

Ben şimdi 5-6 yıl önce üzerinde çalıştığı bir uygulama var. Ben zaman benzer bir çözüm arıyordu. Bu benim önceden twitter uygulaması için - hiçbir yenileme ile web sayfası için sms benim kendi gelişme. Ben zaman yoklama bir yol vardı ... ama en azından ben herhangi iğrenç sayfa yenileme yoktu. Artı ... Ben don

Bu kuyruklu yıldız sunucusuna götürdü. Bu benim cevap oldu.

Ben yoklama aksine gmail sohbet de gerçek itme teknolojisi kullanılan inanmak için önderlik etti. Bu doğru yönde size yol umuyoruz.

MySQL yapamam çünkü Hayır, bu olamaz. Muhtemelen bir mesaj kuyruğuna veya bir akış veritabanı dahil olmak üzere diğer teknolojileri kullanmak gerekir.

AFAIK, bir şey olur zaman komut ping MySQL söylemenin hiçbir yolu yoktur.

Yoklama tek makul çözüm gibi görünüyor ...

Ben onunla oynamadı ama Symfony framework "olay bildirim" tanıttı fark var ... temelde, her zaman app bir parçası, bir INSERT veya UPDATE yapar bir olay oluşturur, ve kod diğer parçaları için kayıt olabilirsiniz olaylar ve yangın "dinlemek".

Yani PHP seviyesinde değil, veritabanı seviyesinde tüm olurdu, ama aradığınız ne düşünüyorsunuz edilir.

Burada Symfony olaylar hakkında iyi bir makale var: http://www.symfony-project.org/blog/2009/02/21/using-the-symfony-event-system

Sen yeni bir şey olduğunda kodu php eşya için Gearman gibi bir şey (bir MySQL interface olan) kullanabilirsiniz. Belki tüm yeni bilgi ile statik bir sayfa oluşturmak için bu olayları kullanmak, ve bu statik bir sayfa kapmak için istemci tarafında yoklama kullanabilirsiniz.

Ama, tüm Gearman kullanmak için henüz ettik, bu yüzden böyle bir kurulum üzerinde ayrıntıları benim dışındadır.

php u kullanıcıya güncelleştirmeleri nasıl gösterecek bile, u sonuçlarını göstermek için sunucuyu sorgulamak zorunda olacak.

ve tek yolu zaten., sunucuyu her 5 veya daha fazla saniye sorgulama, düşünme budur.