这与定时服务有关:
要保存Timer对象以供将来参考,请调用其getHandle 方法并将TimerHandle对象存储在数据库中。 (一个TimerHandle object是可序列化的。)要重新实例化Timer对象,请检索 数据库中的句柄并在句柄上调用getTimer。一个 TimerHandle对象不能作为定义方法的参数传递 在远程或Web服务界面中。换句话说,远程客户端 和Web服务客户端无法访问bean的TimerHandle对象。 但是,本地客户没有此限制。
我想知道是否可以通过某种方式对ManagedScheduledExecutorService
计划的任务执行类似操作。
我想实施的内容: 我正在开发一个基于公司数据显示不同报告(例如表格,图表等)的网络应用程序。用户可以将特定报告导出为pdf。
现在,我想向用户提供订阅到特定报告的可能性,这意味着他希望每周,每月或在订阅时配置的任何时间邮寄该报告。当然,任何时候都应该可以取消订阅,为此我想我需要引用一些持久的用户相关任务信息(比如Timer Service中的处理程序),这些信息会引导我进入任务被取消。
我选择Executor服务的原因是 - 据我调查过 - 它更适合并发批处理作业。定时服务调度单个线程上的所有任务,这可能会导致阻塞任务。