我希望能够:
工作将是ejbs或调用ejbs,我想管理网站上的所有内容(用户必须定义执行)
所以我看了一下timerservice,timerobjects,timer和timerhandle。但我认为它无法满足我的所有需求
另一方面,Quartz允许我做我想要的所有事情,但我对如何将它集成到我的jboss中没有丝毫的线索。 我读到石英使用自己的线程池,我不知道如何处理这一切。我在我的项目中使用Jboss Seam,但是缝/石英集成非常有限(或文档是)并且不是100%安全(在他们的论坛上看到:'run forever' tasks end after only a few weeks)
如果有人设法将一个好的调度程序集成到他的应用程序服务器中(jboss是一个加号)并且可以给我指示,建议甚至代码片段,我会很激动。
提前致谢。
答案 0 :(得分:1)
我有一些将Quartz集成到Weblogic(没有jboss体验,对不起)应用服务器的经验。 Quartz有一个内置的监听器class,它将在服务器启动时调用(根据J2EE规范),自动配置Quartz调度程序。然后在另一个启动类中,您可以检索该调度程序,添加作业并开始提供这些作业。
您通常不需要担心线程池,如果您也需要,Quartz可以自行处理所有这些问题。它从启动时的属性文件中获取其信息,您可以定义或使用石英附带的默认文件。我一直在使用默认值,因为它适用于我的目的。
就定义工作而言,您可以创建工作类并从那里调用您的ejbs。这很简单。
为了您的阅读乐趣:
Cookbook containing lots of code snippets
希望这足以让你开始!
答案 1 :(得分:1)
好消息! JBoss已经有了内置的调度程序。
由于EJB 2.0规范包括按计划的时间间隔运行无状态会话bean和MDB,因此所有应用程序服务器都已包含此功能一段时间了。
以下是配置JBoss使用其内置调度程序运行类的示例:
http://www.jboss.org/community/wiki/Scheduler
关于JBoss实现的最好的部分是它基于MBean规范,这意味着您可以在运行时创建/更新/删除计划任务。
答案 2 :(得分:1)
好的,对不起,我在Jboss Seam的消息来源找到了我需要的东西: QuartzDispatcher创建QuartzTriggerHandle在指定的时间和日期触发煤层事件,并且可以手动调用,恢复和停止。我在我想要执行的方法上使用@observer。
这很简单,到目前为止一直有效。
答案 3 :(得分:0)
正如Poindexter指出的那样,Quartz documentation有很好的起点:Tutorial for Developing with Quartz,Examples of Usage,Cook Book (Quick How-Tos in the form of code examples)等。
What Is Quartz文章也非常好(即使现在有点老了。)
要与JBoss集成,可以查看JBoss Wiki上的How to configure a Quartz service。