الفريق العربي للبرمجةأرشيف المنتديات · 2000 – 2023
نسخة أرشيفية للقراءة فقط — التسجيل والمشاركة مغلقان، والمحتوى محفوظ كما كان.

تنفيذ حدث معين عند مرور شهر مثلا على تسجيل العضو بالموقع

بدأه ado.net2 في 5 مايو 2009 · 16 رد · 1,139 مشاهدة · في ASP.NET
مشاركة: واتساب X فيسبوك تيليجرام
#1 صاحب الموضوع

السلام عليكم

اقوم بعمل صفحة تسجيل بيانات للعضو مع تسجيل تاريخ التسجيل الفعلي يتم استعداؤه من الجهاز وهو مسجل فى قاعدة البيانات

بنفس فورمات التاريخ مثلا : 20 / 05 / 2009

المفروض أنى محتاج انه فى يوم 20 / 6 / 2009 يتم ارسال رسالة تلقائية للعضو .

أو بالعكس بعد 10 يوم مثلا من تسجيله يتم ارسال رسالة تلقائية

كيف يتم عمل ذلك

مع الشكر والتقدير

#2

السلام عليكــم ورحمـة الله وبركاتــه

اخي الكريم ساعطيك الاتجاه وان شاء الله حاول الاكمال لوحدك

اولا : انصحك استعمال console applicatin بحيث تعمل تلقائيا كل يوم مره

ثانيا : حساب التاريخ المستقبلي المطلوب مثلا اذا اردت التاريخ بعد 10 ايام

DateTime DateIn10Days = DateTime.Now.AddDays(10);

ثالثا : ارسل هذا التاريخ الى store procedure واجلب كل المستخدمين الذين سجلو في تاريخ قبله ب 10 ايام

رابعا : ادخل نتيجة ال store procedure الى dataset مثلا

ثم اعمل loop على كل الاسطر وارسل لكل منهم ايمايل(طبعا الايمايل موجود في كل سطر لكل مستخدم)

وبالتوفيق بعون الله

Web Development
Imad M.Khatib
Asp.net , Ajax , MSSQL , VB.Net , C#.Net , Xml , DomHtml , JQuery , JavaScript , Json , LINQ

imad.khatib@hotmail.com

#3

use trigger code on database when end date

IBF

#4

ومين اللي هيـ run ال console يا أخ عماد؟!

ومين اللي هيـ fire الـ trigger يا أخ leyth؟!

:D

الـ Scheduled يكون إما لو كان لديك VPS فتقوم بعمل Schedule task من الويندوز مثلا أو لو كان لديك Shared host وتتيح لوحة تحكم الموقع هذه الخاصيه.

لو لدى أحد آخر أفكار أفضل فليتفضل.

#5

السلام عليكم :

أفضل شيء هو استخدام System.Timers.Timer أو System.Threading.Timerحيث لو تعود الى منتدى asp.net الرسمي والذي يقول فيه مطور المنتدى وهو rob howard بأنه استخدم Timer في المنتدى وذلك حيث كل عشر دقائق يقوم المنهج الذي يعالج حدث Timer بفهرسة المواضيع الجديدة وارسال بريد بالردود الجديدة حيث انه من المستحيل على مواقع مزدحمة ان تقوم بكل هذه العمليات لحظة ارسال المشاركة او الموضوع ولذلك تم استخدام Timer يقوم بهذه العمليات بشكل دوري لكي لايشكل ضغط على السيرفر .

تم تعديل هذه المشاركة بواسطة sufian2020 في 5 مايو 2009 في 13:59

رَبِّ أَوْزِعْنِي أَنْ أَشْكُرَ نِعْمَتَكَ الَّتِي أَنْعَمْتَ عَلَيَّ وَعَلَى وَالِدَيَّ وَأَنْ أَعْمَلَ صَالِحًا تَرْضَاهُ وَأَدْخِلْنِي بِرَحْمَتِكَ فِي عِبَادِكَ الصَّالِحِينَ

تلاوات خاشعة مؤثرة

#6

السلام عليكم

يا جماعة ممكن التوضيح أكثر من ذلك

أنا فى حيرة فعلا

#7

السلام عليكم ورحمة الله وبركاته

يمكن ذلك أيضا عن طريق عمل Job في الـ SQL Server بحيث يحتوي على Scheduel يعمل بشكل يومي في تمام الساعة 12:00 صباحا فيتم من خلاله البحث داخل قاعدة البيانات عن المستخدمون الذين قاموا بالتسجيل منذ شهر ومن ثم إرسال رسالة لهم من داخل السيرفر الخاص بقواعد البيانات مباشرة

دي مجرد فكرة لأني لم أدرس الـ SQL Server 2005 بتعمق

إذا أردت أن تـجـعـلـنـي سـعـيـداً ... فـعـلـمـنـي شـيـئـاً جـديـداً

#8

أخي سفيان ..وما الذي سيقوم بتنفيذ الـ Assembly التي تحتوي على الـ Timer؟!

مستر ماندو.. لم أجرب SQL Server Jobs لكني أعتقد أنه ستقابلك مشكلة صلاحيات لو أردت تشغيل ملفات على السيرفر مثلاً.

أخي صاحب السؤال يمكنك تجربة كل الحلول المقترحه المتاحه لك هنا وتخبرنا بالنتائج :)

#9

السلام عليكم ورحمة الله وبركاته

أخي حزوم ليس المقصود هو تشغيل أحد الملفات عن طريق الـ Jobs لكي يرسل الرسالة

ولكن الـ SQL Server نفسه يستطيع إرسال الرسالة ووظيفة الـ Job فقط هو تحديد الوقت الذي يتم فيه إجراء هذا الحدث وإليكم بعض الروابط التي تشرح كيفية إرسال Mail من داخل السيرفر:

http://www.databasejournal.com/features/ms...Server-2005.htm

http://articles.techrepublic.com.com/5100-...11-6164310.html

الموقع التالي رائع جدا وأنصح الجميع بشدة أن يتابعوه

http://www.sql-server-performance.com/arti...onality_p1.aspx

========================

وبذلك لا ينقصك إلا وضع الكود داخل Job وتشغيله على قاعدة البيانات وسيتم المطلوب إن شاء الله

أرجوا أن أكون أضفت ولو شئ بسيط

وأتمنى من صاحب السؤال البدء فورا في تجربة أحد الطرق المطروحة وإخبارنا بالنتائج.

إذا أردت أن تـجـعـلـنـي سـعـيـداً ... فـعـلـمـنـي شـيـئـاً جـديـداً

#10
اقتباس
وما الذي سيقوم بتنفيذ الـ Assembly التي تحتوي على الـ Timer؟!

أخي حازم ان الذي يقوم بتنفيذ هذا التايمر هو asp.net worker process . هل جربتها , جربها وضع Timer في حدث تحميل اي صفحة او من اي كلاس وشغل الصفحة وسوف ترى النتائج .

تم تعديل هذه المشاركة بواسطة sufian2020 في 5 مايو 2009 في 16:28

رَبِّ أَوْزِعْنِي أَنْ أَشْكُرَ نِعْمَتَكَ الَّتِي أَنْعَمْتَ عَلَيَّ وَعَلَى وَالِدَيَّ وَأَنْ أَعْمَلَ صَالِحًا تَرْضَاهُ وَأَدْخِلْنِي بِرَحْمَتِكَ فِي عِبَادِكَ الصَّالِحِينَ

تلاوات خاشعة مؤثرة

#11

it's better for you to create windows services, this will be running 24/7 on the server.

and use timer to query on the database.

#12

أخي عبد اللطيف windows service حل غر عملي لانه في هذه الحالة يجب ان تمتلك المخدم بشكل كامل ومواقع الاستضافة لاتسمح إلا بتشغيل الموقع .

تم تعديل هذه المشاركة بواسطة sufian2020 في 5 مايو 2009 في 18:45

رَبِّ أَوْزِعْنِي أَنْ أَشْكُرَ نِعْمَتَكَ الَّتِي أَنْعَمْتَ عَلَيَّ وَعَلَى وَالِدَيَّ وَأَنْ أَعْمَلَ صَالِحًا تَرْضَاهُ وَأَدْخِلْنِي بِرَحْمَتِكَ فِي عِبَادِكَ الصَّالِحِينَ

تلاوات خاشعة مؤثرة

#13

مستر ماندو.. أنا كنت أقصد تنفيذ أي حدث عموماً وليس إرسال ايميل لعضو في موقع فقط فأعتذر عن اللبث ففي حالة إرسال ايميل ال jobs مناسبه فعلا لكن في حاله غير هذه لن تنفع الـ jobs

sufian2020 كتب:
أخي حازم ان الذي يقوم بتنفيذ هذا التايمر هو asp.net worker process . هل جربتها , جربها وضع Timer في حدث تحميل اي صفحة او من اي كلاس وشغل الصفحة وسوف ترى النتائج .

يا أخ سفيان.. ما الذي سيقوم بتشغيل هذه الصفحه أو الكلاس أصلاً على السيرفر!! :D

#14

يا جماعة بكل بساطة الموضوع له عدة جوانب انت تبغى صفحة تعمل تلقائياً بعد كل فترة معينة من الزمن تقريباً 80% من المواقع تعطيك خدمة إنشاء مهمة مجدولة من نفس الـControl Panel وغالباً تكون برسوم رمزية 10$ تقريباً .

انا عندي مجموعة مواقع وكلها فيها هذه الخدمة من نفس الـ Control Panel الخاص بالموقع غالباً بقسن الأدوات الأخرى

هذا أفضل حل مضمون 100% .

والطرق الأخرى اللي ذكروها الشباب ايضاً حلوة

خصوصاً موضوع الـSQL Server Job

#15
hazzoom كتب:
الـ Scheduled يكون إما لو كان لديك VPS فتقوم بعمل Schedule task من الويندوز مثلا أو لو كان لديك Shared host وتتيح لوحة تحكم الموقع هذه الخاصيه.
#16

السلام عليكم

في الاستضافة المشتركة غالبا الوصول لهذه الخدمات غير متوفر سواءا ل SQL server Jobs او Windows Services .

وانظروا الى هذا الموضوع

Asp.net Scheduler, طريقة لتشغيل كود معين كل فترة محددة باستمرار

#17

قمت بإنشاء مجلد C:\ASPTimer يحتوى المشروع

المجلد App_Code، الذى بداخله على الملف Global.asax.cs

  1. using System;
  2. using System.Timers;
  3.  
  4. namespace Web
  5. {
  6. public class Global : System.Web.HttpApplication
  7. {
  8. static public int Counter = 0;
  9.  
  10. protected void Application_Start(object sender, EventArgs e)
  11. {
  12. Timer MyTimer = new Timer();
  13. MyTimer.Elapsed += new ElapsedEventHandler(OnTimer);
  14. MyTimer.Interval = 1000;
  15. MyTimer.Enabled = true;
  16. }
  17.  
  18. public void OnTimer(Object source, ElapsedEventArgs e)
  19. {
  20. Counter++;
  21. }
  22. }
  23. }
  24.  

ASPTimer.zip

مواضيع مشابهة