Quartz.NET中任务是需要额外新建一个类继承IJob的,方法入参和出参都是已经规定好了的,这时要想传额外参数就得借助Quartz.NET的内置的对象IJobExecutionContext
通过代码
JobDataMap data = context.JobDetail.JobDataMap;
获取
JobDataMap键值对象就可以读写注入的参数了。
总的代码如下:
public class ColorJob : IJob
{
private ILog log = LogManager.GetLogger(typeof(ColorJob));
public const string FavoriteColor = "favorite color";
public const string ExecutionCount = "count";
private int counter = 1;
public virtual void Execute(IJobExecutionContext context)
{
JobKey jobKey = context.JobDetail.Key;
JobDataMap data = context.JobDetail.JobDataMap;
string favoriteColor = data.GetString(FavoriteColor);
int count = data.GetInt(ExecutionCount);
log.InfoFormat("任务: {0} 执行时间 {1}\n 喜欢的颜色 {2}\n 全局计时 {3}\n