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

java – 非托管线程Spring Quartz Websphere Hibernate

发布时间:2020-12-15 01:26:09 所属栏目:大数据 来源:网络整理
导读:看来我们使用Quartz-JDBCJobStore以及Spring,Hibernate和Websphere的实现抛出了非托管线程. 我做了一些阅读,发现了一篇来自IBM的技术文章,指出使用Quartz with Spring会导致这种情况.他们建议使用CommnonJ来解决这个问题. 我做了一些进一步的研究,到目前为止

看来我们使用Quartz-JDBCJobStore以及Spring,Hibernate和Websphere的实现抛出了非托管线程.

我做了一些阅读,发现了一篇来自IBM的技术文章,指出使用Quartz with Spring会导致这种情况.他们建议使用CommnonJ来解决这个问题.

我做了一些进一步的研究,到目前为止我见过的唯一例子都涉及不在数据库中的旧JobStore计划.

所以,我想知道是否有人有这个问题的解决方案的例子.

谢谢

最佳答案
我们有一个可行的解决方案(实际上是两个).

1)更改quartz源代码,以便为主调度程序线程使用WorkManager守护程序线程.它有效,但需要更改夸脱.我们没有使用它,因为我们不想保持一个黑客版本的石英. (这提醒我,我打算将此提交给项目,但完全忘了)

2)创建一个WorkManagerThreadPool用作石英线程池.实现石英ThreadPool的接口,以便在quartz中触发的每个任务都包装在一个commonj Work对象中,然后在WorkManager中进行调度.关键是WorkManagerThreadPool中的WorkManager必须在调度程序启动之前从Java EE线程(例如servlet初始化)初始化.然后,WorkManagerThreadPool必须创建一个守护程序线程,该线程将通过创建和计划新的Work对象来处理所有计划任务.这样,调度程序(在其自己的线程上)将任务传递给托管线程(Work守护程序).

不简单,不幸的是我没有随时可用的代码.

(编辑:李大同)

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

    推荐文章
      热点阅读