C# 我希望每天午夜执行某些代码,但它不会执行它,只在web应用程序打开时执行
当我运行代码时,它执行一次之后,代码就不会在其上执行了。它是执行一天一次,但它执行时,我开始我的网站 我已经在我的代码中使用了cronjob,如果你对它的线程感到满意的话,那就好了 我的代码如下 在global.asax中,我有以下代码C# 我希望每天午夜执行某些代码,但它不会执行它,只在web应用程序打开时执行,c#,asp.net,multithreading,cron,C#,Asp.net,Multithreading,Cron,当我运行代码时,它执行一次之后,代码就不会在其上执行了。它是执行一天一次,但它执行时,我开始我的网站 我已经在我的代码中使用了cronjob,如果你对它的线程感到满意的话,那就好了 我的代码如下 在global.asax中,我有以下代码 protected void Application_Start(object sender, EventArgs e) { ISchedulerFactory schedFact = new StdSchedulerFactory();
protected void Application_Start(object sender, EventArgs e)
{
ISchedulerFactory schedFact = new StdSchedulerFactory();
// get a scheduler
IScheduler sched = schedFact.GetScheduler();
sched.Start();
// define the job and tie it to our HelloJob class
IJobDetail job = JobBuilder.Create<HelloJob>()
.WithIdentity("myJob", "group1")
.Build();
// Trigger the job to run now, and then every 40 seconds
ITrigger trigger = TriggerBuilder.Create()
.WithIdentity("myTrigger", "group1")
.StartNow()
.WithSimpleSchedule(x => x.WithIntervalInHours(24)
.RepeatForever())
.Build();
sched.ScheduleJob(job, trigger);
// CreatingNewThreadTimer();
}
受保护的无效应用程序\u启动(对象发送方,事件参数e)
{
isSchedulerFactory schedFact=新StdSchedulerFactory();
//获取调度程序
isScheduler sched=schedFact.GetScheduler();
sched.Start();
//定义作业并将其绑定到HelloJob类
IJobDetail job=JobBuilder.Create()
.WithIdentity(“我的工作”、“组1”)
.Build();
//触发作业立即运行,然后每40秒运行一次
ITrigger trigger=TriggerBuilder.Create()
.WithIdentity(“我的触发器”、“组1”)
.StartNow()
.使用简单计划(x=>x.使用间隔小时(24)
.RepeatForever())
.Build();
sched.ScheduleJob(作业,触发器);
//创建新线程计时器();
}
hellojob是我要执行的类将您需要按照某个时间表执行的一些代码放入web应用程序不是一个好主意。考虑将代码放在单独的可执行文件中并在需要时运行,通过Windows任务调度器。不是cron。@AndyKorneyev推出您自己的解决方案不是一个好主意,但是有一些经过尝试和测试的库可以消除很多麻烦。Scott Hanselman(微软员工)讨论了其中的许多问题。@mason我不认为应该在某个时间独立于某个系统启动的任务是该系统的后台任务。是的,它肯定是一个后台任务,因为目标不是在HTTP请求/响应周期的上下文中执行它,而是按照计划执行它。因此,这是一项背景任务。