0

我需要编写一个将在 JBoss 中运行的文件夹观察器。这个想法是,一旦文件出现在文件夹中,我们就应该处理该文件并将其移动到某处。我编写了一个简单的 Java 类,它将使用 Java 7 NIO 并观察文件夹。一旦文件存在出现在文件夹中,我将其移动到另一个文件夹并进行处理。目前我所做的是,一旦文件出现,我就会移动它并创建一个新线程来处理它。由于这假设在 JBoss 中运行,我现在明白在 JBoss 中创建线程不是这样做的方法,我应该使用消息队列。因此,我即将更改类并调用队列并将文件位置的对象传递给它,并期望 JBoss 处理它。我的问题基本上是我做对了吗?这是在 JBoss 中执行此操作的正确方法吗?我想以多任务方式完成的任何过程都应该使用消息队列来完成?

提前致谢,

沙龙

4

2 回答 2

0

您不应该在容器中创建非托管线程。JBoss AS 7 / EAP 6 可以让您定义自己的线程池并允许应用程序容器管理这些线程。如果要使用线程来执行此操作,则应使用容器管理的线程池。否则,基于消息传递的实现将起作用。

于 2013-08-05T20:11:08.490 回答
0

我不完全确定为什么这个应用程序需要在容器/JBoss 中运行。除此之外,一种选择是利用面向消息的模型,使用 JMS 队列/主题而不是处理文件。

另一种选择是创建一个JEE6 计时器服务,该服务将执行您的代码以在特定时间间隔移动文件。所以在这种情况下,JBoss 将使用 ejb 线程池管理您的线程。

于 2013-08-05T20:16:46.613 回答