2009-10-13 32 views
6

Tôi đang xem xét sử dụng khung Quartz để lên lịch chạy hàng trăm công việc.Java - Tạo quy trình làm việc trong Quartz

Theo API của họ, công việc có thể được lập biểu để chạy vào những thời điểm nhất định nhưng không được chạy sau lần khác (và dừng một chuỗi công việc nếu một lỗi không thành công). Các phương pháp khuyến cáo duy nhất mà tôi đã có thể tìm thấy là:

  • Sử dụng một người biết lắng nghe mà chú ý đến việc hoàn thành một công việc và lên lịch cò bên cạnh lửa (làm thế nào để phối hợp này?)
  • Mỗi công việc sẽ nhận được một tham số chứa công việc tiếp theo để chạy và sau khi hoàn thành công việc thực tế, hãy lên lịch chạy. (Hợp tác xã)

Bạn có biết phương pháp tốt hơn để tạo quy trình làm việc trong Quartz không?

Bạn có thể đề xuất các phương pháp/khung công tác khác để triển khai quy trình làm việc trong Java không?

CHỈNH SỬA: Trong khi chờ đợi, tôi phát hiện ra khoảng OSWorkflow có vẻ phù hợp với những gì tôi cần. Có vẻ như những gì tôi cần thực hiện là "Sequence Pattern".

Trả lời

1

Nghe có vẻ như tôi muốn bạn Quartz lên lịch cho công việc trước tiên và kết thúc mọi thứ.

Bạn đã xem xét đóng gói từng tác vụ bằng cách sử dụng Command Pattern và liên kết chúng với nhau?

2

Khi tài liệu Quartz nói về "Công việc", nó đề cập đến một lớp thực hiện Giao diện "Công việc", thực sự là bất kỳ lớp nào có phương thức "thực hiện" trong đối tượng Ngữ cảnh thạch anh. Khi tạo cài đặt này, bạn có thể thực sự làm bất cứ điều gì bạn muốn.

Bạn có thể tạo một triển khai giao diện công việc thạch anh mà chỉ cần gọi tất cả các công việc trong luồng công việc của bạn trong chuỗi và ném ngoại lệ JobExecutionException về lỗi.

0

tôi đã làm việc trên một dự án gọi là động Task Scheduler sử dụng thạch anh để thực hiện chuỗi công việc thực hiện một công việc đơn giản theo một cách fault-tolerant (definied ở định dạng XML).

Hãy xem http://sourceforge.net/projects/dynatasksched/
Dự án này là bản beta, nhưng tôi nghĩ rằng nó có thể cung cấp cho bạn một số ý tưởng để bắt đầu ..

Hy vọng nó hữu ích!

0

Để hỗ trợ chuỗi công việc cho Quartz, bạn có thể muốn kiểm tra dự án QuartzDesk mà tôi đã tham gia. Trong phiên bản 2.0. chúng tôi đã thêm job chaining engine mạnh mẽ cho phép bạn sắp xếp công việc Quartz của mình mà không cần phải sửa đổi mã ứng dụng của mình.

Động cơ sẽ chăm sóc tuyên truyền kết quả thực hiện công việc và các thông số khác từ công việc nguồn đến công việc mục tiêu bị xích.

QuartzDesk đi kèm với GUI cho phép bạn cập nhật động chuỗi công việc của mình mà không làm gián đoạn ứng dụng của bạn.

enter image description here

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