加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

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

发布时间:2020-12-12 19:25:37 所属栏目:百科 来源:网络整理
导读:Quzrtz.net-sqlite 数据库持久化配置 官方配置持久化资料:http://www.quartz-scheduler.net/documentation/quartz-2.x/tutorial/job-stores.html 持久化建库脚本位置:在下载的 quartz 源码 database/dbtables/tables_sqlite.sql 位置,使用 SqliteStudio 工

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 文件 ,该文件是个嵌入资源
位置:QuartzImplAdoJobStoreCommondbproviders.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,PublicKeyToken=db937bc2d44ff139
quartz.dbprovider.SQLite-10102.commandType=System.Data.SQLite.SQLiteCommand,PublicKeyToken=db937bc2d44ff139
quartz.dbprovider.SQLite-10102.parameterType=System.Data.SQLite.SQLiteParameter,PublicKeyToken=db937bc2d44ff139
quartz.dbprovider.SQLite-10102.commandBuilderType=System.Data.SQLite.SQLiteCommandBuilder,PublicKeyToken=db937bc2d44ff139
quartz.dbprovider.SQLite-10102.parameterDbType=System.Data.SQLite.TypeAffinity,PublicKeyToken=db937bc2d44ff139
quartz.dbprovider.SQLite-10102.parameterDbTypePropertyName=DbType
quartz.dbprovider.SQLite-10102.parameterNamePrefix=@
quartz.dbprovider.SQLite-10102.exceptionType=System.Data.SQLite.SQLiteException,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
	//添加驱动类型
	//位置:QuartzImplAdoJobStoreCommondbproviders.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:SqliteDbquartz_storage.db"/>

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读