0

如何@Scheduled在我的 servlet 中将 IBM WebSphere 工作管理器与 Spring 注释一起使用?

Spring 提供了WorkManagerTaskExecutor. 它允许按照 WebSphere 文档此 SO 答案中的描述配置工作管理器。但是,我看不到与@Scheduled注释的关系,也找不到任何文档它是如何在内部工作的。

我的目标是以一种方便的方式(由 给出@Scheduled)配置计划任务,但我需要由 WebSphere 管理由计划程序创建的任务线程。

编辑:DefaultManagedTaskExecutor在我混淆的原始问题WorkManagerTaskExecutor中,后者被弃用,而赞成第一个。现在我知道这WorkManagerTaskExecutor是 Java EE 6(因此是我们的 WebSphere 8.5 环境所必需的),而DefaultManagedTaskExecutor属于 Java EE 7 并且确实可以配置为@Scheduled使用@EnableScheduling注释记录。

4

1 回答 1

1

我可以理解您的意思,Spring 文档对于您配置的任务执行器和@Scheduled. 如果没有这种保证,您可以通过从您的一种方法打印堆栈并确认com.ibm.ws.*包的存在来观察性地验证计划任务是否在 WebSphere Application Server 线程上运行。一种简单的方法是,

new Exception("capturing the stack").printStackTrace(System.out);

SpringDefaultManagedTaskExecutor被记录为依赖于java:comp/DefaultManagedExecutorService,它需要 Java EE 8(或 Jakarta EE)并且应该与 WebSphere Application Server 传统版本 9 一起使用。它还应该与 WebSphere Application Server Liberty 一起使用。

如果您使用的是 8.5.5 或更早版本,WorkManagerTaskExecutor则需要基于 CommonJ WorkManager 的(在您链接的文档之一中引用)。

于 2021-08-20T13:48:32.293 回答