مرجع تخصصی برنامه نویسان

انجمن تخصصی برنامه نویسان فارسی زبان

کاربر سایت

srostam

عضویت از 1393/11/23

جلوگیری از خاموش شدن برنامه برای مدت زمان زیاد

  • سه شنبه 17 بهمن 1396
  • 10:28
تشکر میکنم

سلام دوستان 

من بر روی سایتم که با MVC asp.net طراحی شده یه ربات تلگرامی دارم که این ربات به یه سری از درخواست ها جواب میده . اما بعد از یک روز که صفحات سایت دوباره لود نشد چون Application End فرخوانی شده و قاعدتا برنامه فریز میشه 

برای این که برنامه فریز نشه از این کد استفاده کردم 

HttpWebRequest request = (HttpWebRequest)WebRequest.Create("لینک یکی از صفحات سایت");
request.Method = "GET";
 var response = request.GetResponse();

ولی باز بعد از 12 ساعت برنامه فریز میشه و باید دستی دوباره یکی از صفحات سایت رو خودم باز کنم .

برای این که این برنامه خاموش نشه چه پیشنهادی دارید.

پاسخ های این پرسش

تعداد پاسخ ها : 5 پاسخ
کاربر سایت

ایمان مدائنی

عضویت از 1392/01/20

  • سه شنبه 17 بهمن 1396
  • 10:31

از job یا همان وظابف زمانبندی شده استفاده کنید

زمانبندی کارها با استفاده از Quartz.Net در ASP.Net

کاربر سایت

srostam

عضویت از 1393/11/23

  • سه شنبه 17 بهمن 1396
  • 10:37

ممنونم آقای مدائنی

از این بخش استفاده کردم 

 public static void Start()
        {
            var Cyclejob = JobBuilder.Create<CycleJob>().Build();

            ITrigger Cycletrigger = TriggerBuilder.Create()
                  .WithDailyTimeIntervalSchedule(s =>
                       s.WithIntervalInSeconds(5)
                    )
                  .Build();
            scheduler.ScheduleJob(Cyclejob, Cycletrigger);
        }

و بخشی که گفتم رو اینطوری نوشتم 

public class CycleJob : IJob
    {
        public void Execute(IJobExecutionContext context)
        {
            HttpWebRequest request = (HttpWebRequest)WebRequest.Create("لینک سایت");
            request.Method = "GET";
            var response = request.GetResponse();


        }
    }

ولی باز  هر روز صبح دوباره برنامه فریز شده 

کاربر سایت

srostam

عضویت از 1393/11/23

  • سه شنبه 17 بهمن 1396
  • 11:36

آیا در تعریف scheduler مشکلی وجود دارد که این بخش هم از کار می افتد

کاربر سایت

ایمان مدائنی

عضویت از 1392/01/20

  • سه شنبه 17 بهمن 1396
  • 14:15

من یکبار این مشکل را داشتم با job حل شد 

کاربر سایت

srostam

عضویت از 1393/11/23

  • سه شنبه 17 بهمن 1396
  • 14:38

این بخش رو اضافه کردم به جای scheduler  

 protected void Application_End()
        {
            WakeUp();
        }
        public static void WakeUp()
        {
            try
            {
                HttpWebRequest request = (HttpWebRequest)WebRequest.Create("لینک");
                request.Method = "GET";
                var response = request.GetResponse();
                
            }
            catch (Exception ex)
            {
               
                System.Diagnostics.Trace.WriteLine(ex.Message);
            }
        }

کاربرانی که از این پست تشکر کرده اند

هیچ کاربری تا کنون از این پست تشکر نکرده است

اگر نیاز به یک مشاور در زمینه طراحی سایت ، برنامه نویسی و بازاریابی الکترونیکی دارید

با ما تماس بگیرید تا در این مسیر همراهتان باشیم :)