apache-camel - SimpleScheduledRoutePolicy 在特定时间不起作用
问题描述
我正在开发一个 Web 应用程序,用户在其中添加问题,指定他/她应该收到通知邮件的日期和时间。我是 apache 骆驼和石英调度程序的新手。
我编写了如下示例代码。IssueDTO 只不过是一个 POJO。如果问题是重复的,我已经配置了一个正常工作的 cron 调度程序,即如果我将频率指定为 5,我会得到预期的输出,即控制台的 println 语句。但是,如果问题不是重复的,我使用了 SimpleScheduledRoutePolicy 并硬编码了处理器的 process() 方法应该运行的日期和时间。我只是将日期时间更改为当前系统时间的 2 分钟后,以检查代码是否正常工作。但它永远不会进入 process 方法并打印此语句 => System.out.println("*******************" + issueDTO.getIssueId() + " running at " + gc.getTime().toString());
@Override
public void configure() throws Exception
{
System.out.println("in ReminderRouteBuilder configure()");
System.out.println("Issue ID : " + issueDTO.getIssueId());
System.out.println("Issue Frequency : " + issueDTO.getFrequency());
System.out.println("Is Repetative : " + issueDTO.getIsRepetitive());
// if Repetitive
if (StringUtil.getBoolean(issueDTO.getIsRepetitive()))
{
String fromString = "quartz2://" + issueDTO.getIssueId() + "?cron=0/" + issueDTO.getFrequency() + "+*+*+*+*+?";
from(fromString).process(new Processor() {
@Override
public void process(Exchange exchange) throws Exception
{
System.out.println(issueDTO.getIssueId() + " running every " + issueDTO.getFrequency() + " sec...");
}
});
}
// if not Repetitive
else
{
SimpleScheduledRoutePolicy policy = new SimpleScheduledRoutePolicy();
GregorianCalendar gc = new GregorianCalendar(2019, Calendar.AUGUST, 31, 13, 45);
policy.setRouteStartDate(gc.getTime());
from("direct:start").routeId(issueDTO.getIssueId()).routePolicy(policy).process(new Processor() {
@Override
public void process(Exchange exchange) throws Exception
{
System.out.println("*****************" + issueDTO.getIssueId() + " running at " + gc.getTime().toString());
}
});
}
}
我错过了什么吗?
解决方案
推荐阅读
- mysql - Mysql / Laravel:按多语言搜索关键字但只获取当前语言的结果
- javascript - 数组中的项目正在重复
- node.js - Mongoose - 无法使用“findOrCreate”创建超过 4 个字段
- javascript - 当用户从 React Native 中的另一个页面导航回页面时,如何重新加载页面?
- excel - Laravel Excel 从几张纸导入
- kubernetes - 带有 EKS 集群的 Helm3
- sql-server - 在高峰时间更改存储过程会导致表锁定吗?
- node.js - 从 rsa 密钥获取 »fingerprint«
- django - 使用 Django 的 I18n 函数和代码中的键而不是默认的英文
- python - 对正则表达式中已经分组的内容进行分组