2011-07-18 34 views
7

Tôi bị kẹt với bộ kích hoạt cron Quartz.NET. Tôi đã có thể hiển thị tất cả các tình huống của mình ngoài các kịch bản bên dưới.Quartz.Net - Cứ 3 tuần một lần vào Thứ Hai, Thứ Ba, Thứ Tư

  • tuần Mỗi X trên Mon, Tue, Wed ...

tôi quản lý để thực hiện điều này

0 31 15 ? * MON#2 *

mà gây nên mỗi thứ Hai thứ hai.

Nó có hoạt động với 0 31 15 ? * MON#2,TUE#2,WED#2 * ??

Tôi đã thử nghiệm nó trên http://www.cronmaker.com tuy nhiên Nó chỉ cho tôi thấy thứ Hai là ngày sắp tới. Yêu cầu duy nhất của tôi là giữ cho nó đơn giản - tức là. không quá một kích hoạt.

+5

+1 cho http://www.cronmaker.com! – danyolgiax

+0

bản sao có thể có của [Quartz.NET, Recur Every x Weeks] (http://stackoverflow.com/questions/4866100/quartz-net-recur-every-x-weeks) –

Trả lời

4

Tôi đồng ý với Brabster.
Tôi không nghĩ rằng có thể xảy ra với Biểu thức Cron.

Quartz.net 2.0 có loại trình kích hoạt mới được gọi là LịchIntervalTrigger có thể được sử dụng để quản lý các đơn vị khoảng thời gian khác nhau. Bạn có thể đọc thêm here.

CẬP NHẬT:

Dưới đây là các liên kết đến các quartz.net 2.0 repository.

+0

Tôi giữ nghe về Quartz.net 2.0 nhưng tôi không thể tìm thấy bất kỳ mã nguồn nào thêm một số thông tin về nó. Tôi nghe một số điều xấu về nó (cũng không ổn định, vv). – Luke

+0

@Luke: Tôi đã cập nhật câu trả lời của tôi.Bạn có thể tìm thấy liên kết đến quartz.net trên GitHub. Tôi có thể đề cập đến nó là không ổn định một vài lần ở đây trên SO. Tôi biết Marko Lahma - anh chàng đằng sau nó - đã làm việc rất nhiều về dự án đó gần đây và sửa tất cả các vấn đề tôi có. – LeftyX

+0

Tôi đã quyết định cho v2 một lần.Vì vậy, tôi hiện đang kiểm tra xem nó có phù hợp với tất cả các tiêu chí của tôi không. Tuy nhiên, tôi không thấy làm thế nào tôi có thể sử dụng CalendarItervalTrigger để kích hoạt mỗi 3 tuần trên tue, wed, fri ví dụ. – Luke

4

Tôi đã sử dụng triển khai Java Quartz, giả sử chúng tương tự như vậy, tôi không nghĩ rằng nó có thể thể hiện những gì bạn cần như một CronTrigger đơn lẻ.

Trong Java, chúng tôi có DateIntervalTrigger, nhưng tôi không nghĩ rằng điều này có thể làm những gì bạn cần trong một trình kích hoạt duy nhất. Rất tiếc, vì trình kích hoạt không thể được tạo trong chính API, tôi đoán sẽ có giới hạn về độ phức tạp của các trình kích hoạt có thể được biểu thị dưới dạng một trình kích hoạt.

+0

trên thực tế nó thuộc cùng một nhóm – Jorge

1

Một giải pháp khả thi sẽ có trình kích hoạt được kích hoạt hàng tuần gắn liền với công việc để tính toán nếu số tuần X đã trôi qua và bắt đầu công việc chính.

Điều này có thể trái với yêu cầu 'giữ đơn giản' của bạn nhưng nó sẽ hoạt động. Tôi đã phải thực hiện một cái gì đó tương tự để đảm bảo trường hợp công việc cụ thể được kích hoạt chứ không phải là một trường hợp thương hiệu mới.

Bạn có thể muốn xem this question khi yêu cầu của nó khá nhiều điều tương tự.

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