Quartz.Net - 如何在服务重启时保持上次运行时间

时间:2015-05-22 10:01:24

标签: c# .net windows-services quartz.net

我正在使用Quartz.Net版本2.0运行服务。我想以编程方式保留上次运行时间。目前我正在尝试使用JobDataMap。如果发生任何服务重启,这将失败。如何保持lastruntime甚至服务重启。

 [DisallowConcurrentExecution]
[PersistJobDataAfterExecution]
class Job1 : IJob
{
    public void Execute(IJobExecutionContext context)
    {
        string lastrun =   (string)context.MergedJobDataMap["LastRunDate"];

        context.JobDetail.JobDataMap.Put("LastRunDate", DateTime.Now.ToString());  
    }
}

在Job.xml中,我正在配置

       <job-data-map>
    <entry>
      <key>LastRunDate</key>
      <value></value>
    </entry>
  </job-data-map>

所以问题是Quartz JobDataMap是否在重启时保持作业属性?

1 个答案:

答案 0 :(得分:0)

您必须使用AdoJobStore that

它支持这些提供商:

  • SqlServer-20 - .NET Framework 2.0的SQL Server驱动程序
  • OracleODP-20 - Oracle的Oracle驱动程序
  • OracleODPManaged-1123-40 Oracle的Oracle 11托管驱动程序
  • OracleODPManaged-1211-40 Oracle的Oracle 12托管驱动程序
  • MySql-50 - MySQL Connector / .NET v.5.0(.NET 2.0)
  • MySql-51 - MySQL Connector /:NET v.5.1(.NET 2.0)
  • MySql-65 - MySQL Connector /:NET v.6.5(.NET 2.0)
  • SQLite-10 - SQLite ADO.NET 2.0 Provider v.1.0.56(.NET 2.0)
  • Firebird-201 - Firebird ADO.NET 2.0提供商v.2.0.1(.NET 2.0)
  • Firebird-210 - Firebird ADO.NET 2.0 Provider v.2.1.0(.NET 2.0)
  • Npgsql-20 - PostgreSQL Npgsql

如果您想阅读有关实施的内容,可以在此博客中找到许多有用的信息:part1part2