2012-06-25 30 views
6

Tôi không quen thuộc lắm với Java Quartz, chúng tôi chỉ sử dụng công việc kiểm tra thats được lên lịch hàng ngày. Đối với ứng dụng web Struts2 của chúng tôi, chúng tôi muốn chạy một vài công việc hàng ngày được lên lịch vào các thời điểm khác nhau trong ngày. Các công việc phải ở trạng thái kiên trì như vậy mà ngay cả khi các công việc thất bại do máy chủ xuống/ứng dụng không thành công, họ nên thực thi lại sau khi máy chủ đang hoạt động. Ngoài ra tôi có thể lưu trữ trạng thái/kết quả của các công việc trong DB, để theo dõi công việc. Bất kỳ đề nghị sẽ là hữu ích.JavaQuartz Công việc kiên trì

- Cảm ơn

+0

Tôi tin rằng, Quartz có tất cả các tính năng này. Nó chắc chắn có thể sử dụng một cửa hàng công việc liên tục. – Thilo

Trả lời

6

Dù bạn đã đề cập là có thể trong thạch anh lên lịch và đã có một tính năng với trigger mà chúng tôi thường gọi Misfire Instructions đây là những gì doc nói về nó

Một tính chất quan trọng của một Trigger là "hướng dẫn Misfire của nó ". Một misfire xảy ra nếu một trigger liên tục "bỏ lỡ" thời gian bắn của nó vì lịch trình đang bị tắt, hoặc vì không có chủ đề có sẵn trong hồ bơi thread của Quartz để thực hiện công việc. Các loại trình kích hoạt khác nhau có các hướng dẫn không phù hợp khác nhau có sẵn cho chúng. Theo mặc định, họ sử dụng hướng dẫn 'chính sách thông minh' - có hành vi động dựa trên loại trình kích hoạt và cấu hình. Khi bộ lập lịch bắt đầu, nó sẽ tìm kiếm bất kỳ trình kích hoạt liên tục nào đã bị lỗi và sau đó cập nhật từng trình kích hoạt dựa trên các hướng dẫn về tính không phù hợp được định cấu hình riêng của chúng. Khi bạn bắt đầu sử dụng Quartz trong các dự án của riêng bạn, bạn nên làm cho mình quen thuộc với các lệnh misfire được định nghĩa trên các kiểu trigger đã cho, và được giải thích trong JavaDoc của chúng. Thông tin cụ thể hơn về hướng dẫn về tính không phù hợp sẽ được đưa ra trong các bài học hướng dẫn cụ thể cho từng loại trình kích hoạt.

Về việc bền bỉ thạch anh đi kèm với vài xây dựng trong cơ chế và tất cả các bạn cần phải thiết lập JobStore như JDBCJobStore

tôi đề nghị bạn để đi với Quartz scheduler document của nó khá dễ dàng và có rất nhiều hướng dẫn và các ví dụ để bắt đầu.

Nếu bạn không sử dụng Spring trong ứng dụng của mình, bạn không cần thêm mức trừu tượng và phụ thuộc.

+0

Sau khi xem tài liệu, tôi thấy jobStore chịu trách nhiệm theo dõi tất cả "dữ liệu công việc" mà bạn cung cấp cho lịch biểu: công việc, trình kích hoạt, lịch, v.v. Có thể lưu trữ trạng thái Lệnh trong jobStore, tức là , tình trạng kết quả/thực hiện .. –

+0

bạn sẽ có thể nhận được thông tin cũng –

+0

Bất kỳ Bài học cụ thể nào. trong tài liệu mà tôi có thể tìm thấy chi tiết về việc truy lục trạng thái công việc của công việc lên lịch. –

1

Chúng tôi có Job stores api trong Java thạch anh. Điều này sẽ duy trì dữ liệu trong cơ sở dữ liệu về thông tin của công việc. Vì vậy, tôi đoán điều này sẽ giúp bạn. Bạn có thể kiểm tra this link để có ý tưởng về mã và cấu trúc DB.

2

Bạn có thể sử dụng Quartz kết hợp với Sprig batch.

Trước đây cung cấp API để quản lý các luồng khác nhau (phức tạp như bạn cần), lưu trữ liên tục trạng thái công việc và api để theo dõi và chạy lại công việc theo trạng thái thực thi của chúng. Một thư viện tiện dụng khác là Spring Batch admin. Nó có giao diện điều khiển web và hướng dẫn 5 phút.

Quartz được sử dụng như trạng thái công việc lịch trình lưu giữ được xử lý theo đợt Spring .. Nó có thể chạy như ứng dụng java độc lập và cũng trong web/container ứng dụng (đối với tôi Tomcat là đủ).

Chúc may mắn!

+0

Để sử dụng Spring Batch Admin, tôi có cần sử dụng khung công tác Springs trong ứng dụng web Struts2 hiện có của mình –

+0

có, bạn sẽ cần nó. – aviad

+0

Ok, cảm ơn các đề xuất của bạn. –

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