代码之家  ›  专栏  ›  技术社区  ›  Julien Chastang

寻找通用异步Java作业执行框架/库

  •  5
  • Julien Chastang  · 技术社区  · 16 年前

    Callable s或 Runnable java.util.concurrent.ExecutorService ExecutorService

    1. Serializable

    5 回复  |  直到 16 年前
        1
  •  8
  •   Apocalisp    16 年前

    Quartz .

    Quartz是一个功能齐全的开源作业调度系统,可以与几乎任何J2EE或J2SE应用程序集成或一起使用,从最小的独立应用程序到最大的电子商务系统。Quartz可用于创建简单或复杂的计划,以执行数十、数百甚至数万个作业;其任务被定义为标准Java组件或EJB的作业。Quartz Scheduler包括许多企业级功能,如JTA事务和集群。

        2
  •  3
  •   erickson    16 年前

    Quartz ,并创建混凝土 Job 将适配器委托给 Runnable Callable .石英' 接口增加了在任务调用之间维护某些状态的能力。如果需要,Quartz可以将作业及其状态持久地存储在关系数据库中,并在可扩展的主机集群上执行。

        3
  •  2
  •   OscarRyz    16 年前

    http://www.opensymphony.com/quartz/wikidocs/Features.html 看看它是否已经为你准备好了。

    从该页面:

    使用附带的JDBCJobStore,所有配置为“非易失性”的作业和触发器都通过JDBC存储在关系数据库中

        4
  •  2
  •   Alex Miller    16 年前

    Terracotta ,它能够在JVM中对堆进行集群,并将其持久化以提高可用性。Terracotta支持与 Quartz 如果从日程安排的角度来看这是有用的。此外,还有一个主worker和消息传递 integration module

        5
  •  2
  •   Taylor Gautier    16 年前

    为了跟进Alex的观点,Terracotta解决方案不会将您的作业持久化到数据库中,它们将持久化在Terracotta分布式内存存储中。

    CompletionService executor = new DistributedCompletionService(new DistributedExecutorService("myTopologyName"));
    executor.submit(new MyRunnable(), null);
    ...
    Future f = executor.take();
    

    Quickstart guide in the master-worker implementation on the Terracotta Forge .

    更重要的是,Terracotta不要求你实现序列化——尽管如果你想的话,你可以:)