java – 我应该创建一个新的石英作业并触发一个作业和多个触发器吗?

我希望使用quartz来安排电子邮件,但我不确定采取哪种方法:

>创建新作业并在计划电子邮件时触发OR
>创建单个作业,并在每次安排电子邮件时创建新的触发器

我需要以任何方式传递消息/收件人等,而且我不确定创建大量工作是否会开始增加大量内存开销,因为很可能会安排数千封电子邮件.

更新:这些电子邮件将由用户安排,而不是我 – 所以我将在运行时以编程方式添加这些电子邮件,它们不会安排在任何特定时间出去.

解决方法:

Quartz旨在处理成千上万的触发器.此处可扩展性的主要限制是JobStore中可用的空间.支持合理数据库的JDBCJobStore应该能够处理数十万个触发器.

如果可以通过触发器的作业数据映射参数化单个作业,则为每个电子邮件创建一个作业和一个触发器. Quartz定期轮询作业存储以查找准备触发的触发器. Quartz旨在安全地处理来自此查询的任意大的结果集.

重要的是 – 这与Quartz本身无关 – 就是你有足够的带宽来执行峰值负载.如果用户倾向于将邮件安排在丛中,则需要确保拥有计算资源才能收到电子邮件.这将包括网络带宽,处理以及配置为利用可用资源的足够工作线程.

请注意,如果Quartz在执行作业时落后太多,您可以配置Quartz应该对触发器执行的操作.你可以继续尝试,跳过触发器等.

上一篇:MongoDB主从复制(master-->slave)环境搭建


下一篇:linux – 替代EDF算法