Tôi có thể sử dụng Quartz Scheduler thư viện để tạo ra lịch trình với các thiết lập sau đây ?:Tôi có thể sử dụng Quartz Scheduler để bắn mỗi tháng vào ngày thứ 30 nhưng nếu tháng không có ngày thứ 30, lửa vào ngày cuối cùng?
- Bắt đầu từ Đéc, 30 năm 2014
- Execute mỗi ngày 30
- Mỗi tháng 2 do
- Nếu tháng không có ngày thứ 30, hành động sẽ diễn ra vào ngày ngày cuối cùng của tháng.
Vì vậy, lịch trình kết quả sẽ là:
- 30 tháng 12 năm 2014
- tháng hai năm 2015
- 30 Tháng 4 2015
- ... và vân vân
Từ những gì tôi đã học:
- CronTrigger không cho phép làm như vậy (nó có thể được thiết lập chỉ được kích hoạt trên tháng cụ thể và không phải trên khoảng),
CalendarIntervalTrigger sẽ bỏ qua tháng mà không có ngày thứ 30 (kích hoạt thông tạo ra bởi mã sau)
try { SchedulerFactory schedulerFactory = new StdSchedulerFactory(); Scheduler scheduler = schedulerFactory.getScheduler(); scheduler.start(); JobDetail jobDetail = JobBuilder.newJob(HelloJob.class) .withIdentity("HelloJob_CalendarIntervaled", "calendarIntervaled") .build(); Calendar decemberThirty = Calendar.getInstance(); decemberThirty.set(Calendar.YEAR, 2014); decemberThirty.set(Calendar.MONTH, Calendar.DECEMBER); decemberThirty.set(Calendar.DAY_OF_MONTH, 30); CalendarIntervalTrigger calendarIntervalTrigger = newTrigger() .withIdentity("calendarIntervalTrigger", "calendarIntervaled") .withSchedule(CalendarIntervalScheduleBuilder.calendarIntervalSchedule() .withIntervalInMonths(2)) .startAt(decemberThirty.getTime()) .forJob(jobDetail) .build(); scheduler.scheduleJob(jobDetail, calendarIntervalTrigger); System.out.println(calendarIntervalTrigger.getNextFireTime()); } catch (SchedulerException e) { e.printStackTrace(); }
Nếu không, là có bất kỳ lựa chọn thay thế (nó nên làm việc trên JBoss eap 6.2.0)?
Thực hiện tối thiểu: kích hoạt công việc hàng ngày, kiểm tra xem ngày có hợp lệ khi bắt đầu công việc hay không. Tôi không biết thực tế trong trường hợp của bạn (chi phí thiết lập và tương tự), nhưng nó sẽ cho phép bạn sử dụng API ngày, di chuyển logic ngày chính xác sang phương pháp, tài liệu và kiểm tra nó, v.v. – ssube