17. Schedular 静态类
版本说明
以下内容仅限 Furion 4.8.0 +
版本使用。
17.1 启动调度作业服务
该功能 建议 仅限不能通过 services.AddXXX
方式使用,比如控制台,Winfrom/WPF
等。
IDisposable dispose = ScheduleServe.Run(options =>
{
options.AddJob<MyJob>(Triggers.Secondly());
});
这种方式有一个隐藏的巨大隐藏 “骚操作”:可以在任何地方创建作业调度服务,多次调用可以创建多个作业调度器。
推荐使用
Serve.Run()
或 Serve.RunGeneric()
方式替代Furion
框架提供了 Serve.Run()
方式支持跨平台使用,还能支持注册更多服务,如:
Serve.Run(services =>
{
services.AddSchedule(options =>
{
options.Add<MyJob>(Triggers.Secondly());
});
})
如无需 Web
功能,可通过 Serve.RunGeneric
替代 Serve.Run
。
17.2 获取作业调度计划工厂
var schedulerFactory = Schedular.GetFactory();
17.3 获取作业
var scheduler = Schedular.GetJob("作业 Id");
17.4 序列化作业触发器参数或作业信息额外数据
// 作业触发器参数
var args = new object[] { "* * * * * *", CronStringFormat.WithSeconds };
var stringArgs = Schedular.Serialize(args);
// 作业额外数据
var jobData = new Dictionary<string, object> { { "name", "Furion" } };
var stringJobData = Schedular.Serialize(jobData);
17.5 反序列化作业触发器参数或作业信息额外数据
// 作业触发器参数
var stringArgs = "[\"* * * * *\",0]";
var args = Schedular.Deserialize<object[]>(stringArgs);
// 作业额外数据
var stringJobData = "{\"name\":\"Furion\"}";
var args = Schedular.Deserialize<Dictionary<string, object>>(stringJobData);