2016-04-05 19 views
0

Im Yani temelde neye ihtiyacım ASP.net Zamanlama Mesaj Facebook gibi

ASP.net/c#

üzerine ... Facebook sayfaları için mesajların Planlama benzer bir şey yapmaya çalışıyor ise:

  • Kullanıcı
  • bir tarih seçer birkaç metin kutuları ...

sonrası bu tarihte yayınlanmıştır alır ... bunun için gerçekten kodlama yanı sıra mantık anlamak için kuramıyorum doldurur ...

Şimdiye kadar düşündüğüm, kullanıcı gönderiyi gönderdikten sonra, ayrıntıları SheduledPosts gibi SQL'de bir tabloda depolar ve CurrentDate (Sunucu Tarihi) tarih ile eşleştiğinde .... SQL girişini aktarma oradan gerçek PostTable'a.

lütfen unutmayın ...

Şimdi asıl süreç herhangi sayfalar yükleme veya kullanıcı tarafından yapılmış hiçbir işleme sahip olmayan gerçekleşmesi gerekiyor ... Bu yüzden de sunucu tarafında gerçekleşmesi için nasıl anlamıyorum facebook'a bir şey göndermeye çalışmıyorum ... daha ziyade, kendi asp.net web sitemde bir program formu göndermeye çalışıyorum ...

Mantık, kodlama, zamanlama ile ilgili her türlü yardım büyük ölçüde ...

Teşekkür ederiz

cevap

0
  1. bir "mesajları beklemede" tablosunu uygulamak ve "mesajları beklemede" tablosundan yazı aktarılması bakmak sunucuda çalışan ayrı bir süreç var: Ben Bunu gerçekleştirmek için farklı şekillerde bir çiftdüşünebiliriz uygun zamanda "geçerli gönderiler" tablosuna.
  2. Geçerli yayınlar tablonuza "publish_on" datetime alanı ekleyin ve sayfa çıktısında görüntülenecek öğeleri seçerken, sorgunuza "WHERE publish_on IS NULL OR yayınla_on> GETDATE()" ifadesini ekleyin. Bunu, belirli bir zamana kadar canlı yayında kalmak istemediğiniz yayınlar için doldurursunuz.

Şahsen, daha zarif bir çözüm olduğunu düşündüğümden ikinci yaklaşımla giderdim.

+0

ben yaklaşımı 2. katılıyorum: Burada

bir gözden geçirme basit bir Windows hizmeti oluşturmaya üzerindedir. Yayınlama tarihi için saklanan değerin, zaman dilimi ne olursa olsun veya bir ofset ile saklandığından emin olun, bu nedenle yayın, izleyicinin saat dilimine bağlı olarak yanlışlıkla erken/geç yayınlanmaz. Çözelti 2'deki yaklaşım aynı zamanda şema şemasının bütünlüğünü bozulmadan tutar ve esasen ikinci bir kopyayı muhafaza etmekle ilişkili bakımı ortadan kaldırır. – randcd

0

Bunu tek bir tablo ile yapabilirsiniz. Sadece 'Gönderilen' bir tarih alanı (kayıtlarınız için), bir 'Yayınla' tarih alanı ve bir Boolean 'Yayınlandı' alanı olsun. Her 5 dakikada bir çalıştırmak için bir Windows Hizmeti oluşturun ve hizmetin tarih kontrolünü gerçekleştirmesine izin verin; Tarih ölçütlerini karşılayan bir tane bulduğunda, yalnızca Boolean alanını 'true' olarak değiştirir ve sayfa mantığınız postu görüntüleyebilir. böylece çözeltide istenirse Hatta bunu bir pencere yapabilir

https://msdn.microsoft.com/en-us/library/zt39148a%28v=vs.110%29.aspx?f=255&MSPPError=-2147217396