hamidshahram
جمعه 26 شهریور 1389, 13:02 عصر
تایمر سرور ساید در ASP.NET
سلام من یه مشکل خیلی بزرگ دارم من خودم برنامه نویس وب سایت هستم با سی شارپ هم کار می کنم ولی یه مشکلی دارم که نمی تونم حلش کنم اونم اینکه که یه سایت نوشتم که اطلاعات یه سری افراد در اون ذخیره میشه حالا یه تیکه کد باید بنویسم که طرف سرور هر چند لحظه دیتابیس رو چک کنه اگه ردیف جدیدی وجود داره اطلاعاتش رو دربیاره و اس ام اس کنه همه چی رو نوشتم ولی با این تایمره مشکل دارم چون وقتی راش میندازم می بینم متدی Elaapsed اون چند بار اجرا میشه بعد اجرا نمیشه باز دوباره خودبخود راه می افته من تعریف کردم اینطوری :
System.Threading.Timer threadingTimer = new System.Threading.Timer(newTimerCallback(timer_Tick ), HttpContext.Current, 0, 300000);
Application["Timer"] = threadingTimer;
messages.Text = "این سرویس با موفقیت فعال شد.";
}
protectedvoid timer_Tick(object sender)
{
lock (runningLock)
//{
try
{
//database operation
}
/////
ولی نمی دونم چرا این timer_Tick چند بار کار می کنه دوباره کار نمیکنه باز دوباره خودکار کار می کنه در حالیکه من که تایمر رو تعریف کردم پس چرا همیشه IIS نمی ره به این متد من سر بزنه و اون رو اجرا کنه
این رو هم بدونید ما تحت وب و طرف سرور سه نوع تایمر می تونیم استفاده کنیم
System.Timers.Timer (http://msdn.microsoft.com/en-us/library/system.timers.timer.aspx)
System.Web.UI.Timer (http://msdn.microsoft.com/en-us/library/system.web.ui.timer.aspx)
System.Threading.Timer (http://msdn.microsoft.com/en-us/library/system.threading.timer.aspx)
من هر سه تا رو استفاده کردم ولی نمی دونم چرا متد من رو توی اون زمان هایی که تعریف کردم اتوماتیک اجرا نمی کنه مشکل کار من چیه به چی برمیگرده؟
سلام من یه مشکل خیلی بزرگ دارم من خودم برنامه نویس وب سایت هستم با سی شارپ هم کار می کنم ولی یه مشکلی دارم که نمی تونم حلش کنم اونم اینکه که یه سایت نوشتم که اطلاعات یه سری افراد در اون ذخیره میشه حالا یه تیکه کد باید بنویسم که طرف سرور هر چند لحظه دیتابیس رو چک کنه اگه ردیف جدیدی وجود داره اطلاعاتش رو دربیاره و اس ام اس کنه همه چی رو نوشتم ولی با این تایمره مشکل دارم چون وقتی راش میندازم می بینم متدی Elaapsed اون چند بار اجرا میشه بعد اجرا نمیشه باز دوباره خودبخود راه می افته من تعریف کردم اینطوری :
System.Threading.Timer threadingTimer = new System.Threading.Timer(newTimerCallback(timer_Tick ), HttpContext.Current, 0, 300000);
Application["Timer"] = threadingTimer;
messages.Text = "این سرویس با موفقیت فعال شد.";
}
protectedvoid timer_Tick(object sender)
{
lock (runningLock)
//{
try
{
//database operation
}
/////
ولی نمی دونم چرا این timer_Tick چند بار کار می کنه دوباره کار نمیکنه باز دوباره خودکار کار می کنه در حالیکه من که تایمر رو تعریف کردم پس چرا همیشه IIS نمی ره به این متد من سر بزنه و اون رو اجرا کنه
این رو هم بدونید ما تحت وب و طرف سرور سه نوع تایمر می تونیم استفاده کنیم
System.Timers.Timer (http://msdn.microsoft.com/en-us/library/system.timers.timer.aspx)
System.Web.UI.Timer (http://msdn.microsoft.com/en-us/library/system.web.ui.timer.aspx)
System.Threading.Timer (http://msdn.microsoft.com/en-us/library/system.threading.timer.aspx)
من هر سه تا رو استفاده کردم ولی نمی دونم چرا متد من رو توی اون زمان هایی که تعریف کردم اتوماتیک اجرا نمی کنه مشکل کار من چیه به چی برمیگرده؟