Abp Quartz配置Sqlite

在ABP框架中使用Quartz做background  job

具体引用什么包,可以参考Background Jobs Quartz | Documentation Center | ABP.IO

由于读写不是那么多,就准备使用sqlite 作为数据库使用。

更新下:在使用sqlite时遇到lock问题(比如登陆时)解决方案

在ConfigureService中配置下:

Configure<AbpUnitOfWorkDefaultOptions>(options =>
        {
            options.TransactionBehavior = UnitOfWorkTransactionBehavior.Disabled;
        });

配置的时候遇到了点问题

由于采用的是上面链接介绍的第二种配置方式

PreConfigure<AbpQuartzOptions>(options =>
        {
            options.Configurator = configure =>
            {
                configure.UsePersistentStore(storeOptions =>
                {
                    storeOptions.UseProperties = true;
                    storeOptions.UseJsonSerializer();
                    storeOptions.UseSqlite(configuration.GetConnectionString("Quartz"));
                    
                });
            };
        });

 结果发现有点问题。

经过一番调试(查看quartz源码,和Windows日志事件发现是配置有问题)和翻看别人的配置

 storeOptions.UseSqlite(configuration.GetConnectionString("Quartz"));改成了

  storeOptions.UseMicrosoftSQLite(configuration.GetConnectionString("Quartz"));

经过日志查看,UseSqlite需要引入System.Data.SQLite

而我已经通过引入Volo.Abp.EntityFrameworkCore.Sqlite引入了

Microsoft.EntityFrameworkCore.Sqlite

数据库配置字符支持2中

  "ConnectionStrings": {
 
    "Quartz": "Filename=./xxxx.sqlite"

  },

或者

 "ConnectionStrings": {
 
    "Quartz": "Data Source=./xxxx.sqlite"
 
  },

或者

 "ConnectionStrings": {
 
    "Quartz": "Data Source=.\\xxx.sqlite"
 
  },

重要的是,一定要在sqlite中先创建相关的表

相关的sql代码在quartz.net 源码中,地址在quartznet/database/tables at main · quartznet/quartznet · GitHub。注意在有的工具在执行sql语句时报错,那就换个工具,我是在sqlite studio里执行的。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值