菜鸟准备采用Quartz.NET
实现一个定时任务,随网站启动。
任务代码很简单:
public class Job1 : IJob
{
public async Task Execute(IJobExecutionContext context)
{
// 写入日志到文件
Log.log("测试", "ceshi");
}
}
Global.ashx
代码如下:
public class Global : System.Web.HttpApplication
{
static StdSchedulerFactory factory;
static IScheduler scheduler;
protected void Application_Start(object sender, EventArgs e)
{
Log.log("网站已启动", "");
RunProgram().GetAwaiter().GetResult();
}
// 无关代码省略了
// RunProgram 根据官方示例改的
private static async System.Threading.Tasks.Task RunProgram()
{
try
{
factory = new StdSchedulerFactory();
scheduler = await factory.GetScheduler();
await scheduler.Start();
IJobDetail job = JobBuilder.Create<Job1>()
.WithIdentity("test", "test")
.Build();
ITrigger trigger = TriggerBuilder.Create()
.WithIdentity("machineOnline", "machineOnline")
.StartNow()
// 每 10s 执行一次
.WithCronSchedule("/10 * * * * ?")
.Build();
// Tell quartz to schedule the job using our trigger
await scheduler.ScheduleJob(job, trigger);
}
catch (SchedulerException se)
{
await Console.Error.WriteLineAsync(se.ToString());
}
}
}
上面这段代码发布到IIS
之后,站点占用的内存就一直在不停的增长(其实用Timer
类定时也会出现这种情况),请问有大神遇到过这种情况吗,有什么解决方法呢,谢谢(●'◡'●)
这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。
V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。
V2EX is a community of developers, designers and creative people.