Belki gerçek hayatta örnek yardımcı olacaktır. Birkaç yıl önce, ben Zend Framework kullanarak bir etkinlik takvimi proje üzerinde çalıştı. Bu takvimde, bir kullanıcı bir olay oluşturabilir ve olay 1 veya daha fazla tarih eklemek. Doğal olarak, ben bu hayata bir benim veritabanında katılmak için-bir-çok, ama bu bir tarih eklemek için, olay ilk var olması anlamına geliyordu. Ancak kullanıcılar tarihleri while onlar after onlar bir olay yarattık değil, olay yaratmak edildi eklemek için izin istedim. Diğer bir deyişle, ben aynı zamanda bir olayın tüm yönleriyle düzenlemek ve onlar tıklandığında sadece göndermek için kullanıcı istedim "kurtarmak."
Ben kullanıcı bir olay kaydını oluştururken başladığında veritabanında yeni bir boş bir olay kaydı takarak sorunu çözdü. Bu boş kayıt doldurulur ve kullanıcı "kaydetmek" tıkladığında kaydedilebilir veya kullanıcı "iptal" tıkladığında silinir alır. Sorun kullanıcılar "iptal" tıklayarak olmadan uzağa gidildiğinde oluştu ve boş olay kaydı veritabanında bırakıldı. Sonunda, veritabanı bu anlamsız boş olayları ile doldurun ve çirkin şeyler alabilirsiniz.
Ben, diğer şeyler arasında, 24 saatten daha eski kaydedilmemiş tüm kayıtları silinen, "bakım ()" adlı bir işlev yazdı. Ben gece koştu ve bakım () koştum, bir komut satırı php script yürütülen bir cron işi kurmak.
Sizin için bir cron işi kullanabilirsiniz diğer şeyler:
- Yeni kullanıcılar için e-postaları toplu gönderin. (Her 5 dakikada?)
- Güncelleme kullanıcı istatistikleri (her saat?)
- Sunucular trafik çarptı değilken kaynak-yoğun işlemleri gerçekleştirin (gece yarısı Her gece veya Pazar geceleri haftada bir kez?)
- (Jeff "bant" dediği) bir kullanıcı isteğine yanıt olarak oluşmaz şey başka bir olay.