2016-03-22 18 views
1

友達、ローカルマシンのQuartzジョブを停止する

私のアプリケーションでは、いくつかのクォーツジョブが実行されています。すべてがうまくいきます。私がしたいのは、ローカルマシンでそのアプリケーションを使用しているときにジョブを実行しないことだけです。つまり、ジョブはサーバー上でのみ実行し、必要なときにのみローカルで実行する必要があります。

ブール値の定数を追加する解決策があることは知っていますが、それ以外の場合は実行されないジョブは実行されませんが、実行する方法と場所はどこですか?

また、他にもできることがあれば教えてください。

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変数を使用していて、RUN_JOBSがtrueの場合にのみstart()を呼び出しましたが、それでもローカルマシン上でジョブを実行しています。これはASP.net MVC Webアプリケーションです。

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私は自分のスケジューラのコードを追加しました。はい、デバッグの目的で実行しています。私は自分のローカルデータをすべてリフレッシュしたくありません。そのような仕事はたくさんありますが、私はちょうど1つのコードを投稿しました。 –

+0

1.あなたの 'Start()'はどこから呼び出されていますか?そのコードも投稿できますか? 2. Quartzは、コンソールアプリケーションまたは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この場合、Visual Studioのすべての同様の状況で#if!DEBUG #endifを使用できますか? –

+1

@binaryサーバーにデプロイするときにローカルで 'Debug'モードで実行し、' Release'モードで実行している限り、好きな場所で使うことができます。 – Seany84

関連する問題