代码之家  ›  专栏  ›  技术社区  ›  Maxime ARNSTAMM

如何在EJB3中使用石英?

  •  1
  • Maxime ARNSTAMM  · 技术社区  · 16 年前

    我希望能够:

    • 定义不同的作业和触发器。
    • 根据需要修改到期日期和间隔
    • 暂停或取消执行(触发器)

    作业将是ejb或callejb,我希望管理网站上的所有内容(用户必须定义执行)

    所以我研究了timerservice、timerobjects、timer和timerhandle。但我认为它不能满足我所有的需要

    另一方面,Quartz允许我做任何我想做的事情,但我对如何将其集成到我的jboss中一无所知。

    我在我的项目中使用Jboss Seam,但是Seam/quartz集成非常有限(或者文档非常有限),而且不是100%安全(见他们的论坛: 'run forever' tasks end after only a few weeks )

    如果有人能将一个好的调度器集成到他的应用服务器中(jboss是一个加号),并能给我提供指导、建议,甚至代码片段,我会非常激动。

    提前谢谢。

    4 回复  |  直到 16 年前
        1
  •  1
  •   Poindexter    16 年前

    我有一些将Quartz集成到Weblogic(抱歉,没有jboss经验)应用服务器的经验。石英有一个内置的监听器 class 这将在自动配置Quartz调度程序的服务器启动时调用(根据J2EE规范)。然后在另一个启动类中,您可以检索该调度程序,添加作业并开始为这些作业提供服务。

    您通常不需要担心线程池,Quartz也可以自己处理这一切。它从启动时的属性文件中获取信息,您可以定义或使用quartz附带的默认属性文件。我一直在使用默认值,因为它符合我的目的。

    至于定义作业,您可以创建作业类并从中调用EJB。这相当简单。

    为了您的阅读乐趣:

    All Quartz documentation

    Quartz JavaDoc

    Cookbook containing lots of code snippets

        2
  •  1
  •   shadit    16 年前

    好消息!JBoss已经有了一个内置的调度程序。

    http://www.jboss.org/community/wiki/Scheduler

    JBoss实现最好的部分是它基于MBean规范,这意味着您可以在运行时创建/更新/删除计划任务。

        3
  •  1
  •   Maxime ARNSTAMM    16 年前

    好的,很抱歉,我在Jboss Seam的源代码中找到了我所需要的: QuartzDispatcher 创造 QuartzTriggerHandle wich在指定的时间和日期触发seam事件,并可手动暂停、恢复和停止。我在想要执行的方法上使用@observer。

        4
  •  0
  •   Pascal Thivent    16 年前
    推荐文章