在本地机器上停止 Quartz 作业
Stop Quartz Job on local machine
朋友,
我正在 运行我的应用程序中进行一些 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 为真时才调用 start() ,但它仍然是我本地机器上的 运行ning 作业。它是一个 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();
}
}
}
由于您的代码在本地 运行,我假设它处于 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
}
}
朋友,
我正在 运行我的应用程序中进行一些 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 为真时才调用 start() ,但它仍然是我本地机器上的 运行ning 作业。它是一个 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();
}
}
}
由于您的代码在本地 运行,我假设它处于 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
}
}