2016-03-22 2 views
1

Друзья,Остановить кварц Работа на местном компьютере

Я выполняю работу по кварцу в своем приложении. Все работает нормально, единственное, что я хочу сделать, это не запускать задания, когда я использую это приложение на своей локальной машине. Это означает, что задания должны выполняться только на сервере и запускаться локально только тогда, когда я их хочу.

Я знаю, что может быть решение для добавления булевой константы, если это правда, чем запуск, иначе задания не будут выполняться, но как и где это сделать?

Также, если есть что-то еще, что можно сделать?

public class JobScheduler 
    { 
     public static void Start() 
     { 
      IScheduler scheduler = StdSchedulerFactory.GetDefaultScheduler(); 

      scheduler.Start(); 

      IJobDetail offersRefreshJob = JobBuilder.Create<OffersRefreshJob>().Build(); 

      ITrigger triggerForOffersRefreshJob = TriggerBuilder.Create().WithDailyTimeIntervalSchedule 
       (s => 
       s.WithIntervalInMinutes(8) 
       .OnEveryDay() 
       .StartingDailyAt(TimeOfDay.HourAndMinuteOfDay(0, 0)) 
      ) 
      .Build(); 

     scheduler.ScheduleJob(offersRefreshJob, triggerForOffersRefreshJob); 
    } 
} 

Это код файла Global.asax.cs. Я использовал логическую переменную RUN_JOBS и называл start(), только если RUN_JOBS является истинным, но он все еще выполняет задания на моей локальной машине. Это веб-приложение ASP.net MVC.

public class MvcApplication : System.Web.HttpApplication 
    { 
     public bool RUN_JOBS = true; 
     protected void Application_Start() 
     { 
      AreaRegistration.RegisterAllAreas(); 
      FilterConfig.RegisterGlobalFilters(GlobalFilters.Filters); 
      RouteConfig.RegisterRoutes(RouteTable.Routes); 
      BundleConfig.RegisterBundles(BundleTable.Bundles); 

      if (RUN_JOBS) 
      { 
       JobScheduler.Start(); 
      }    
     } 
    } 
+0

Вы используете его локально для отладки? Можете ли вы разместить свой код для планировщика? – Seany84

+0

@ Seany84 Я добавил код моего планировщика, Да, я запускаю для целей отладки, также я не хочу, чтобы он обновлял все мои локальные данные, я хочу обновлять данные по своим локальным данным, когда мне это нужно, а не автоматически. Есть много таких заданий, я опубликовал код только одного. –

+0

1. Откуда вы называете свой 'Start()', и можете ли вы опубликовать этот код? 2. Работает ли кварц в консольном приложении или службе Windows? – Seany84

ответ

1

Поскольку код выполняется локально, я предполагаю, что он находится в режиме Debug и при развертывании на сервер находится в режиме Release.

public class MvcApplication : System.Web.HttpApplication 
{ 
    protected void Application_Start() 
    { 
     AreaRegistration.RegisterAllAreas(); 
     FilterConfig.RegisterGlobalFilters(GlobalFilters.Filters); 
     RouteConfig.RegisterRoutes(RouteTable.Routes); 
     BundleConfig.RegisterBundles(BundleTable.Bundles); 


     #if !DEBUG 
      JobScheduler.Start(); 
     #endif    
    } 
} 
+1

имеет смысл. Отметьте как ответ после проверки. Спасибо за ваше время. :) –

+0

@ Seany84 В этом случае мы можем использовать #if! DEBUG #endif для всей подобной ситуации в Visual Studio? –

+1

@binary Вы можете использовать его везде, где хотите, до тех пор, пока вы запускаете «Debug» локально и «Release» при развертывании на ваш сервер. – Seany84

Смежные вопросы