您的位置:首页 > 数据库

Quzrtz.net-sqlite 数据库持久化配置

2016-12-22 16:23 405 查看
Quzrtz.net-sqlite 数据库持久化配置

官方配置持久化资料:http://www.quartz-scheduler.net/documentation/quartz-2.x/tutorial/job-stores.html

持久化建库脚本位置:在下载的 quartz 源码 database/dbtables/tables_sqlite.sql 位置,使用 SqliteStudio 工具执行就行了

1.下载源码(我下载的是 2.3.3.0 版本)

2.打开项目,找到 dbproviders.properties 文件 ,该文件是个嵌入资源

位置:Quartz\Impl\AdoJobStore\Common\dbproviders.properties

3.发现 quartz 2.3.3.0 支持 System.Data.SQLite.dll(1.0.88.0) 的驱动

4.查看自己的引用的(System.Data.SQLite.dll)是 1.0.102.0 版本,所以需要新加一个驱动描述。如下:

# Sqlite3.0  provider
quartz.dbprovider.SQLite-10102.assemblyName=System.Data.SQLite, Version=1.0.102.0, Culture=neutral, PublicKeyToken=db937bc2d44ff139
quartz.dbprovider.SQLite-10102.connectionType=System.Data.SQLite.SQLiteConnection, System.Data.SQLite, Version=1.0.102.0, Culture=neutral, PublicKeyToken=db937bc2d44ff139
quartz.dbprovider.SQLite-10102.commandType=System.Data.SQLite.SQLiteCommand, System.Data.SQLite, Version=1.0.102.0, Culture=neutral, PublicKeyToken=db937bc2d44ff139
quartz.dbprovider.SQLite-10102.parameterType=System.Data.SQLite.SQLiteParameter, System.Data.SQLite, Version=1.0.102.0, Culture=neutral, PublicKeyToken=db937bc2d44ff139
quartz.dbprovider.SQLite-10102.commandBuilderType=System.Data.SQLite.SQLiteCommandBuilder, System.Data.SQLite, Version=1.0.102.0, Culture=neutral, PublicKeyToken=db937bc2d44ff139
quartz.dbprovider.SQLite-10102.parameterDbType=System.Data.SQLite.TypeAffinity, System.Data.SQLite, Version=1.0.102.0, Culture=neutral, PublicKeyToken=db937bc2d44ff139
quartz.dbprovider.SQLite-10102.parameterDbTypePropertyName=DbType
quartz.dbprovider.SQLite-10102.parameterNamePrefix=@
quartz.dbprovider.SQLite-10102.exceptionType=System.Data.SQLite.SQLiteException, System.Data.SQLite, Version=1.0.102.0, Culture=neutral, PublicKeyToken=db937bc2d44ff139
quartz.dbprovider.SQLite-10102.useParameterNamePrefixInParameterCollection=true
quartz.dbprovider.SQLite-10102.bindByName=true


5.编写一个函数在初始化 quartz 前调用

#region 数据库持久化job
private static IScheduler _sched = null;
/// <summary>
/// 初始化数据库存储
/// </summary>
public void InitDbStore()
{
//持久化配置参考
//http://www.quartz-scheduler.net/documentation/quartz-2.x/tutorial/job-stores.html
//添加驱动类型
//位置:\Quartz\Impl\AdoJobStore\Common\dbproviders.properties
//1.首先创建一个作业调度池
var properties = new NameValueCollection();
//存储类型
properties["quartz.jobStore.type"] = "Quartz.Impl.AdoJobStore.JobStoreTX, Quartz";
//表明前缀
properties["quartz.jobStore.tablePrefix"] = "QRTZ_";
//驱动类型
properties["quartz.jobStore.driverDelegateType"] = "Quartz.Impl.AdoJobStore.StdAdoDelegate, Quartz";
//数据源名称
string DBName = "quartz_storage";
string DbPath = Grass.Config.ConfigHelper.GetAppSettingsValue("quartz_storage"); //获取config中 quartz_storage 节点内容
//数据源名称
properties["quartz.jobStore.dataSource"] = DBName;
//拼接连接属性名称
string conPropertieName = string.Format("quartz.dataSource.{0}.connectionString", DBName);
//连接字符串
properties[conPropertieName] = string.Format("Data Source={0};Pooling=true;FailIfMissing=false;Version=3;UTF8Encoding=True;Journal Mode=DELETE;", DbPath);
//拼接驱动属性名称
string proPropertieName = string.Format("quartz.dataSource.{0}.provider", DBName);
properties[proPropertieName] = "SQLite-10102"; //新加的驱动名称
//Configuring AdoJobStore to use strings as JobDataMap values (recommended)
properties["quartz.jobStore.useProperties"] = "true";

ISchedulerFactory sf = new StdSchedulerFactory(properties);
_sched = sf.GetScheduler();
}
#endregion


6.配置config appsettings

<add key="quartz_storage" value="E:\SqliteDb\quartz_storage.db"/>
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: