-
Notifications
You must be signed in to change notification settings - Fork 422
相关问题及处理
农码一生 edited this page Jun 6, 2018
·
1 revision
- 问题1:使用Quartz存储持久化任务时报错(就是存到数据库/非内存)
- 原因:https://www.quartz-scheduler.net/documentation/quartz-3.x/tutorial/job-stores.html 官方说明有问题
-
- 序列化报错,具体位置,调试下源码就知道了。
- 处理:使用Quartz提供的JsonObjectSerializer,需要nuget导入Quartz.Serialization.Json.dll
DBConnectionManager.Instance.AddConnectionProvider("default", new DbProvider("SQLite-Microsoft", "Data Source=sqliteScheduler.db"));
var serializer = new JsonObjectSerializer();
serializer.Initialize();
var jobStore = new JobStoreTX
{
DataSource = "default",
TablePrefix = "QRTZ_",
InstanceId = "AUTO",
DriverDelegateType = typeof(SQLiteDelegate).AssemblyQualifiedName, //SQLite存储
ObjectSerializer = serializer
};
DirectSchedulerFactory.Instance.CreateScheduler("benny" + "Scheduler", "AUTO", new DefaultThreadPool(), jobStore);
_scheduler = SchedulerRepository.Instance.Lookup("benny" + "Scheduler").Result;
- 问题2:发布到linux上报错“Could not find time zone using alias id Asia/Beijing”
- 原因:在Quartz源码\quartznet\src\Quartz\Util 48行 timeZoneIdAliases["China Standard Time"] = "Asia/Beijing";
- 处理:在Dockerfile加入“cp /usr/share/zoneinfo/Asia/Shanghai /usr/share/zoneinfo/Asia/Beijing”