Bladex-boot,没有集成定时任务,需要手动集成quartz。
1、quartz官方文档
Quartz官方文档_w3cschool
先通过官方文档了解quartz框架,方便后续使用
2、pom中添加starter
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-quartz</artifactId>
</dependency>
3、数据库中建表
解压quartz-2.3.2.jar,在quartz-2.3.2\org\quartz\impl\jdbcjobstore路径,找tables_sqlServer.sql,在数据库运行。
4、配置selectWithLockSQL
程序启动时,出现UPDATE, pos 90, line 1, column 84, token UPDATE : SELECT * FROM QRTZ_LOCKS WHERE SCHED_NAME = 'quartzScheduler' AND LOCK_NAME = ? FOR UPDATE [See nested exception: java.sql.SQLException: sql injection violation, syntax error: syntax error, not support option : UPDATE, pos 90, line 1, column 84, token UPDATE : SELECT * FROM QRTZ_LOCKS WHERE SCHED_NAME = 'quartzScheduler' AND LOCK_NAME = ? FOR UPDATE]]错误,生成的语法 FOR UPDATE,sql server不认识。
添加下列配置解决,但是感觉应该有设置mssql语法的方式。
quartz:
job-store-type: jdbc
properties:
org:
quartz:
jobStore:
selectWithLockSQL: SELECT* FROM {0}LOCKS UPDLOCK WHERE LOCK_NAME = ?
至此,集成quartz后,程序可以正常启动。
参考资料:
https://blog.csdn.net/u013652477/article/details/101671224https://www.cnblogs.com/cocoat/p/6640533.html
https://blog.csdn.net/yinzitun7947/article/details/85834213
https://www.w3cschool.cn/quartz_doc/
|