2014-08-29 1 views
0

suppose que j'écrit & emploi calendrier Quartz.NET code lié à Application_Start événement comme cette façonQuartz.NET peut invoquer ma fonction de classe si la piscine app asp.net est inactif

public class HelloJob : IJob 
    { 
     public void Execute(JobExecutionContext context) 
     { 
      //Send Mail 
     } 
    } 


    public static void ConfigureQuartzJobs() 
    { 
     // construct a scheduler factory 
     ISchedulerFactory schedFact = new StdSchedulerFactory(); 

     // get a scheduler 
     IScheduler sched = schedFact.GetScheduler(); 
     sched.Start(); 

     // construct job info 
     JobDetail jobDetail = new JobDetail("myJob", null, typeof(HelloJob)); 
     //created trigger which will fire every minute starting immediately 
    ITrigger trigger = TriggerBuilder.Create() 
      .WithIdentity("myTrigger", "group1") 
      .StartNow() 
      .WithSimpleSchedule(x => x 
       .WithIntervalInSeconds(60) 
       .RepeatForever()) 
      .Build(); 

     sched.ScheduleJob(jobDetail, trigger); 
} 

protected void Application_Start() 
{ 
    ConfigureQuartzJobs(); 
} 

donc j'aime savoir que mon la routine sera atteinte toutes les 60 secondes si le pool d'applications est inactif ou si aucun visiteur ne consulte mon site web?

ma principale préoccupation est que je dois appeler une routine spécifique après 60 secondes si la piscine d'application est inactif ou actif. ou même aucun visiteur ne navigue sur mon site web aucune page.

donc s'il vous plaît me guider Que dois-je faire? merci

Répondre

0

Vous pouvez faire suivre sans Quartz: 1) Dans la méthode Application_End vérifier la raison de l'arrêt (vous êtes intéressé par le délai). http://msdn.microsoft.com/en-us/library/system.web.applicationshutdownreason(v=vs.110).aspx

2) Lorsque vous obtenez l'écriture et l'événement raison du délai d'inactivité avec identifiant spécifique journal des événements Windows

3) Allez aux fenêtres planificateur de tâches. Créer une nouvelle tâche Aller aux déclencheurs. Nouveau déclencheur. Dans la zone de liste déroulante Type de déclencheur, choisissez "Sur un événement". Choisissez le journal, la source et l'ID d'événement que vous écrivez dans le journal. (par défaut Application)

4) Allez dans Actions-> Nouveau-> Envoyer un e-mail

Questions connexes