假设我的客户的帐户将在指定日期过期。我有一个任务编码将退役服务,但我不确定如何在指定日期启动完全任务。
我正在寻找一种方法来安排具有以下要求的一次性未来任务:
由于我使用Java,Quartz似乎是一个合理的选择,但我只是用它来进行基于cron的调度。我不确定它是否可以用于这样的事情或最佳实践 - 特别是对于持久性部分。
春天在这方面有什么用吗?
答案 0 :(得分:0)
Java Timer类与自定义DeactivateCustomerTask相结合,除了通过电源故障问题的持久性之外,其他所有内容都足够了。
对于持久性,您可以保留一个序列化为HDD的List,然后在加电时再次读回。但是您必须已将客户数据保存到磁盘,因此通过扫描该数据库从头开始重新创建List更有意义。毕竟,当服务器处于脱机状态时,帐户可能已经过期,您需要在加电时专门处理该案例。
您可能已经意识到这一点,但DeactivateCustomerTask需要确保客户在创建后没有续订;并且续订方法需要确保DeactivateCustomerTask不会同时执行。