2011-06-23 25 views
15

Tôi đang sử dụng Quartz.NET, và lịch trình của tôi chủ yếu dựa vào việc sử dụng các biểu cron của - chẳng hạn như những người trình bày chi tiết vào liên kết này:CronExpressions - bất kỳ thư viện nào ở đó để tạo chúng/chuyển đổi chúng thành dạng có thể đọc được của con người?

http://quartznet.sourceforge.net/tutorial/lesson_6.html

Lý tưởng nhất, tôi muốn 2 kịch bản được có thể thực hiện được (lần đầu tiên có thể là rất khó, và ít có khả năng là bất kỳ thứ gì ngoài đó)

1: Khả năng cho người dùng xây dựng biểu thức cron trên biểu mẫu ASP.NET, nơi họ chọn phút nào, giờ, ngày, v.v.

2: Khả năng biến một con đường nhỏ n biểu thị thành một chuỗi ngắn, chẳng hạn như 'Mỗi {x} phút vào Thứ Sáu' hoặc 'Tại {x} o đồng hồ vào ngày cuối cùng của mỗi tháng'

Tôi đã bắt đầu viết phiên bản của riêng mình, nhưng đó là một nhiệm vụ rất tốn kém và tôi rất muốn tìm ra một thư viện ở đó, hoặc thậm chí có bất kỳ gợi ý và lời khuyên nào về việc này cho các bạn.

Lưu ý: Nếu không có gì ngoài đó và tôi (tương đối) thành công trong việc tạo mã, tôi sẽ sẵn sàng chia sẻ nguồn nếu có ai muốn.

+1

Vui lòng đăng phiên bản thư viện của bạn. Nó sẽ hữu ích cho tôi. Cảm ơn –

Trả lời

1

Có người hỏi những câu hỏi same vài tháng trước.
Tôi chưa bao giờ tìm được thứ gì như thế.
Tôi đã thực hiện "trình cấu hình" của riêng mình nhưng yêu cầu của tôi khá đơn giản.

23

Tôi đã viết thư viện C# chỉ thực hiện việc này. Nó được gọi là cron-expression-descriptor. https://github.com/bradyholt/cron-expression-descriptor.

+0

yêu thích công việc của bạn @ Brady :-) Cảm ơn bạn đã nuôi dưỡng! –

+3

Bạn có biết nếu có một công cụ để làm điều ngược lại? Nhập vào * "Vào lúc 11:30 sáng, từ Thứ Hai đến Thứ Sáu" * và trả lại: ** "30 11 * * 1-5" ** –

7

Sử dụng Quartz.NET mới nhất (2.1 theo văn bản này), bạn có thể nhận biểu thức Cron bằng cách sử dụng CronScheduleBuilder.

Bắt biểu thức cho công việc hàng ngày:

var t = CronScheduleBuilder.DailyAtHourAndMinute(10, 0).Build() as CronTriggerImpl; 
Console.WriteLine(t.CronExpressionString);// This is the actual Cron 
Console.WriteLine(t.GetExpressionSummary()); // This is the description of that Cron 
+0

@Thanks Jonas để biết thông tin. –

+0

Trang web này được xây dựng bằng cách sử dụng Quartz: [link] (http://www.cronmaker.com), có thể là một ví dụ hữu ích cho những ai muốn xây dựng các biểu thức từ GUI có thể đọc được của con người. –

3

tôi đã kết thúc sử dụng plugin này jquery mà cung cấp một giao diện đẹp và sau đó sử dụng một lĩnh vực tiềm ẩn để tiết kiệm này cho một cơ sở dữ liệu trong .net/C#.

http://shawnchin.github.com/jquery-cron/

Nó hoạt động khá tốt cho tôi. Bạn có thể cần phải kiểm tra xem bạn đang thiết lập giây ở phía trước của chuỗi để "0" mặc dù nếu sử dụng quartz.net mặc dù như tôi đã được như plugin này không hỗ trợ giây.