定时任务
定时任务可以用于在网站后台执行定时处理.
注意网站被IIS回收后, 将不会定时执行这些任务(其他的网站内嵌定时任务框架也一样),
如果需要定时任务必须在指定的时间运行, 请设置IIS程序池常驻或使用独立的进程处理.
定时任务已考虑到部署到多个服务器时的情况, 部署到多个服务器仍可以保证任务不被重复执行.
定时任务的数据结构
添加定时任务
定时任务需要继承IScheduledTaskExecutor
并注册到容器, Key
返回在数据库中保存的任务名称.
定时任务的例子
添加src\Components\ScheduledTasks\ExampleTask.cs
这个任务每15分钟写入一次日志
[ExportMany, SingletonReuse] public class ExampleTask : IScheduledTaskExecutor { public string Key { get { return "ZKWeb.Example.ExampleTask"; } } public bool ShouldExecuteNow(DateTime lastExecuted) { return ((DateTime.UtcNow - lastExecuted).TotalMinutes > 15); } public void Execute() { var logManager = Application.Ioc.Resolve<LogManager>(); logManager.LogDebug("Example task executed"); } }