持久化ManagedScheduledExecutorService计划的任务句柄

时间:2015-01-16 08:31:00

标签: java java-ee batch-processing scheduledexecutorservice

这与定时服务有关:

  

要保存Timer对象以供将来参考,请调用其getHandle   方法并将TimerHandle对象存储在数据库中。 (一个TimerHandle   object是可序列化的。)要重新实例化Timer对象,请检索   数据库中的句柄并在句柄上调用getTimer。一个   TimerHandle对象不能作为定义方法的参数传递   在远程或Web服务界面中。换句话说,远程客户端   和Web服务客户端无法访问bean的TimerHandle对象。   但是,本地客户没有此限制。

我想知道是否可以通过某种方式对ManagedScheduledExecutorService计划的任务执行类似操作。

我想实施的内容: 我正在开发一个基于公司数据显示不同报告(例如表格,图表等)的网络应用程序。用户可以将特定报告导出为pdf。

现在,我想向用户提供订阅到特定报告的可能性,这意味着他希望每周,每月或在订阅时配置的任何时间邮寄该报告。当然,任何时候都应该可以取消订阅,为此我想我需要引用一些持久的用户相关任务信息(比如Timer Service中的处理程序),这些信息会引导我进入任务被取消。

我选择Executor服务的原因是 - 据我调查过 - 它更适合并发批处理作业。定时服务调度单个线程上的所有任务,这可能会导致阻塞任务。

0 个答案:

没有答案