我有以下批处理功能
@Scheduled(cron="0 15 1 * * ?")
public void executeJob() {
try {
System.out.println("Execute Batch Job : START"); //TODO
businessOperationAdminService.executeBatchJob(false, BATCH_USERNAME);
System.out.println("Execute Batch Job : END"); //TODO
}
catch(Exception ex) {
ex.printStackTrace();
}
}
@Scheduled(cron="0 30 1 1 * ?")
public void executeMonthlyJob() {
try {
System.out.println("Execute Monthly Batch Job : START"); //TODO
businessOperationAdminService.executeMonthlyBatchJob(false, BATCH_USERNAME);
System.out.println("Execute Monthly Batch Job : END"); //TODO
}
catch(Exception ex) {
ex.printStackTrace();
}
}
该应用程序在云服务中运行,我无法控制时区。现在我想测试结果看起来如何让我说在运行30次批次之后。现在的问题是我无法简单地更改服务器时间并重新运行应用程序。
测试此类批处理作业的最佳方法是什么?
答案 0 :(得分:1)
使用带注释的POJO(普通的旧Java对象)的基本思想是,像任何其他类似的对象一样,你可以像其他任何一样测试它们。因此,如果您想测试30个月后发生的事情,那么每月工作时间为30次......您只需在测试中拨打executeMonthlyJob
30次。