Tôi có trường văn bản nơi người dùng có thể nhập biểu thức cron (ví dụ: 0 */5 * * * *
). Sau đó tôi chia nó và xây dựng một javax.ejb.ScheduleExpression
.Xác thực javax.ejb.ScheduleExpression
Bây giờ javax.ejb.ScheduleExpression
chấp nhận bất kỳ Chuỗi nào cho các phần tử khác nhau mà không xác thực. Tôi có thể ví dụ:
scheduleExpression.minute("randomText");
và được chấp nhận. Nếu sau đó cố gắng sử dụng ScheduleExpression tôi rõ ràng nhận được lỗi (ví dụ, khi tôi cố gắng tạo ra một bộ đếm thời gian với nó).
Tôi đã bắt đầu viết mã để xác nhận đầu vào, nhưng các quy tắc không phải là quá ngắn và tầm thường: http://docs.oracle.com/javaee/6/api/javax/ejb/ScheduleExpression.html
Có một cách đơn giản (trong Java EE) hoặc một thư viện nào đã thực hiện công việc?
Thực ra không: cú pháp được chấp nhận bởi 'ScheduleExpression' không giống với' CronExpression'. Ví dụ trong khi '0 0 5? * L' hợp lệ cho 'CronExpression' là ** không ** hợp lệ cho' ScheduleExpression'. – Matteo
Đồng ý @Matteo, đó là một ý tưởng hay, nhưng không đúng. – rjdkolb