OSGI on Websphere ThreadFactory查找

时间:2011-10-09 15:32:37

标签: websphere osgi

我是OSGI的新手,正在开发在websphere上运行的项目。 我有一个简单的调度程序,我使用了java.util.concurrent.ScheduledExecutorService,如下所示:

private ScheduledExecutorService scheduler;
...
scheduler = Executors.newScheduledThreadPool(corePoolSize);

因为我的应用程序是在容器(WebSphere)中运行的,所以尽管让容器管理线程会更好,所以我想使用:

scheduler = Executors.newScheduledThreadPool(corePoolSize, threadFactory);

threadFactory将从容器中注入蓝图。

我环顾四周,找不到如何做的例子。 所以我的问题是,如何做到这一点,是否值得努力?

2 个答案:

答案 0 :(得分:1)

关于我的问题,我找到了一些非常有用的资源,

归咎于此: http://www.ibm.com/developerworks/websphere/techjournal/0609_alcott/0609_alcott.html#spring-4

  

其他软件包(例如quartz和JDK Timer)启动时不受管理   线程,应该避免。

解决方案是: http://www.ibm.com/developerworks/websphere/techjournal/0606_johnson/0606_johnson.html#sec5

示例代码可用,基本上使用WebSphere WorkManager实现自定义TheardFactory,而剩下的就是使用自定义ThreadFactory启动ExecutorService。

答案 1 :(得分:0)

我不确定OSGi标签在这个特定情况下的位置,但是this question有几个链接你会觉得很有用。我不会在你自己的答案中引用的文章中使用WorkManager的内容,因为它非常适合IBM,并且在commonj API中有更好的选择,并且就此而言,有一个Timer服务作为API的一部分这可能会完全照顾你的需求。

如果您使用Spring,那么您可以编写integration for task execution and scehduling代码,它们透明地支持JDK和commonj(在编译时)。