zoukankan      html  css  js  c++  java
  • Quartz.Net—IJob特性

    IJob默认情况下是无状态的,和其他系统没有关系  特别是job里面的jobdata每次都是新的。可以无限扩展。

    PersistJobDataAfterExecution    JobData持久化

    Job在执行的后会生成一个新的Job为下一次执行,并且返回这个老的Job。  这样就保持了Job的无状态。但是有时候需要让他有状态,就要加上特性PersistJobDataAfterExecutionAttribute,使JobDataMap一直保持。

    [PersistJobDataAfterExecution]
    public class MyJob7 : IJob
    {
    
        public Task Execute(IJobExecutionContext context)
        {
            Console.WriteLine(context.JobDetail.JobDataMap["zangfeng"]);
            context.JobDetail.JobDataMap["zangfeng"] = context.JobDetail.JobDataMap["zangfeng"] + "1";
            return Task.Factory.StartNew(() => Console.WriteLine($"工作任务测试7:{DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss")}"));  
        }
    }
    View Code
    DisallowConcurrentExecution       禁用同步执行

    一个Job可能会有多个Trigger。导致一个Job,同时执行。

    //[PersistJobDataAfterExecution]
    [DisallowConcurrentExecution]
    public class MyJob7 : IJob
    {
    
        public Task Execute(IJobExecutionContext context)
        {
            Console.WriteLine(context.JobDetail.JobDataMap["zangfeng"]);
            context.JobDetail.JobDataMap["zangfeng"] = context.JobDetail.JobDataMap["zangfeng"] + "1";
            return Task.Factory.StartNew(() => Console.WriteLine($"工作任务测试7:{DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss")}"));  
        }
    }
    View Code
  • 相关阅读:
    apache+mysql+php+phpmyadmin搭建
    Redis学习笔记(1)Redis安装和启动
    Zlib 引用中出现的问题
    约数
    AC自动机
    当我们说“一切皆对象”时,我们到底在说什么
    Google翻译,3个步骤灭绝人类
    Linux下Gcc生成和使用静态库和动态库详解(转)
    Java基础&笔试题
    SQL基础&笔试题
  • 原文地址:https://www.cnblogs.com/wudequn/p/8620560.html
Copyright © 2011-2022 走看看