首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Quartz中的嵌套调度支持

Quartz中的嵌套调度支持
EN

Stack Overflow用户
提问于 2016-12-08 05:27:55
回答 1查看 158关注 0票数 0

我有一个业务需求,它需要以下调度模式

-T1

t1和t2之间,对产品A给予10%的折扣,而对于嵌套时间窗口ta - tb,则给予20%的折扣。当到达tb时,回到产品A的10%折扣,直到t2为止。

Quartz作业调度能实现这一点吗?

我想避免在这里安排3个作业-间隔为(t1,ta) (ta,tb)和(tb,t2)。

EN

回答 1

Stack Overflow用户

发布于 2016-12-08 10:53:44

石英是一个通用的Java调度API,因此它不附带任何特定于应用程序的业务逻辑“开箱即用”。我用Quartz解决上述要求的方法如下:

  1. 创建一个通用的ProductPriceUpdaterJob Quartz作业,它将简单地更新存储在产品存储区(通常是数据库)中的产品价格。该作业将期望有一个带有折扣百分比(即0、10、20)的单一作业数据映射参数“折扣”。
  2. 将作业与4个Quartz触发器(T1、Ta、Tb、T2)关联起来,它们分别在t1、ta、tb和t2上启动您的工作。这些触发器将在其作业数据图中指定所需的折扣金额(T1有discount=10,Ta有discount=20,Tb有discount=10,T2有discount=0)。
  3. 启动Quartz并注册该工作并与其触发,您就完成了。

在t1,Quartz使用触发器T1启动您的工作,该工作对产品价格给予10%的折扣。在ta,Quartz使用触发器Ta启动您的工作,您的工作对产品价格等有20%的折扣。

石英支持4种不同的触发器类型,我认为您可以安全地使用CronTrigger类型作为触发器。

您可能希望在触发器中使用另一个作业数据映射参数,其中可以指定要应用折扣的产品的ID (或ID)。这样,你的工作将是真正通用的和可用的所有您的产品。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/41032362

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档