2012-12-20 29 views
5

tôi cần phải tạo ra việc làm đó sẽ:thạch anh - việc làm lịch trình mỗi hai tuần trên một vài ngày trong tuần và thời gian

  • bắt đầu một 12/20/2012
  • ENDDATE = 2017/12/31
  • sẽ xuất hiện 2 tuần một lần vào Chủ Nhật và thứ Hai
  • kích hoạt lúc 5 giờ chiều.

biểu thức cron này có hợp lệ không?

Date start = 12/20/2012; 
Date endDate = 12/31/2017; 
SimpleTrigger trigger = newTrigger() 
    .withIdentity("trigger3", "group1") 
    .startAt(startDate) 
    .withSchedule(cronSchedule("* * 17 0 0/2 *,SUN,MON").build()) 
    .endAt(endDate) 
    .build; 

Vui lòng thông báo.

+1

Tôi nghĩ * * 17 0 0/2 *, SUN, MON – Mukus

+0

Để thiết lập một công việc cron xảy ra lúc 5 giờ chiều vào Chủ nhật và Thứ Hai sẽ là 0 17 * * 0,1 trong đó 0 = phút, 17 = giờ, * = ngày trong tháng, * = tháng, 0,1 = Chủ Nhật, Thứ Hai hoặc ngày trong tuần với chủ nhật là 0 và thứ bảy là 7. Tôi không thể nghĩ cách thiết lập hai tuần một lần với điều này. Tôi không nghĩ rằng ngày tháng và ngày trong tuần có thể được sử dụng cùng một lúc. Điều đó có thể không đúng. – Mukus

+0

Bạn có thể tìm ra điều này không? Bạn có sử dụng bất kỳ công cụ nào khác để đạt được nó không? – user2023507

Trả lời

1

Tôi khuyên bạn nên thực hiện kiểm tra đơn vị dựa trên biểu thức cron của bạn. Với thanh danh cho Van de Voorde Toni, bạn có thể căn cứ trên mã này, và sử dụng nó để xác minh rằng "nextValidTimeAfter" phù hợp với sự mong đợi của bạn:

import java.text.ParseException; 
import java.util.Date; 

import org.quartz.CronExpression; 

public class CronTester { 

    public static void main(String[] args) throws ParseException { 
     final String expression = "* * 17 0 0/2 *,SUN,MON"; 
     final CronExpression cronExpression = new CronExpression(expression); 

     final Date nextValidDate1 = cronExpression.getNextValidTimeAfter(new Date()); 
     final Date nextValidDate2 = cronExpression.getNextValidTimeAfter(nextValidDate1); 

     System.out.println(nextValidDate1); 
     System.out.println(nextValidDate2); 

    } 
} 
+0

biểu thức cron này không hợp lệ. hãy thử nó tại cronMaker.com –

Các vấn đề liên quan