[英]Executing external services using EJB Timer Service
我有一个关于利用EJB计时器服务的场景。
用例如下:系统应该能够安排一个任务,该任务将使用某些特定的时间戳来轮询/询问我们的Subversion存储库中的文件更改。
这个想法是,每当计划任务要运行时,它将针对特定的svn存储库执行命令。 为此,我不会调用任何外部进程,而是使用“纯” java方式来使用SVNKit Java库http://svnkit.com/
我唯一关心的是:使用EJB计时器服务执行将调用外部进程的任务是一个好主意吗? 我的方式将使用“纯” java方式,但在其他情况下,例如将批处理文件/命令行/外部可执行文件直接调用到计时器服务逻辑中。
我担心服务器内存使用/性能等的影响。
这是一个好主意吗?
我在想的另一个想法是,使用基于客户端的技术(例如SWT / Swing)在服务器中创建一个“桌面”应用程序,该应用程序将执行轮询,然后在那里进行逻辑编码,但这意味着我需要管理两个应用程序。 将会轮询的“桌面”应用程序以及我将在Glassfish中创建的“网络”用户界面。
我倾向于在我选择的应用服务器(glassfish)中执行所有操作。
我以前使用过EJB Timer,但是它只调用数据库而没有调用任何扩展服务,只是这种情况出现了,所以我在这里提出了一个问题,以收集有经验的人的更多想法。
有什么想法吗?
从理论上讲,EJB不应该依赖于外部I / O,因为它会干扰容器/服务器对Bean实例,线程等的管理。
在实践中,如果采取预防措施,这应该会起作用。 例如:
请记住,EJB 3.0计时器是持久性的(与EJB 3.1计时器相比,它可以是非持久性的),这意味着:
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.