2012-12-27 34 views
10

Tôi đang cố gắng tích hợp công việc Quartz vào ứng dụng mùa xuân của mình. Tôi lấy ví dụ này từ here. Ví dụ này cho thấy các công việc thực hiện tại các khoảng lặp lại bằng cách sử dụng simpletrigger và tại một thời điểm cụ thể bằng cách sử dụng crontrigger.Quartz một lần làm việc khi khởi động ứng dụng

Yêu cầu của tôi là chỉ chạy công việc một lần khi khởi động ứng dụng. Tôi đã xóa thuộc tính repeatInterval, nhưng ứng dụng sẽ ném ngoại lệ:

org.quartz.SchedulerException: Repeat Interval cannot be zero 

Có cách nào để lên lịch công việc một lần không?

Cảm ơn ..

Trả lời

7

Tìm thấy câu trả lời here

Lờ đi repeatInterval và thiết repeatCount = 0 làm những gì tôi muốn.

1

Spring SimpleTriggerFactoryBean thực hiện công việc: nếu bạn không chỉ định thời gian bắt đầu, nó sẽ đặt thành 'now'. Tuy nhiên, tôi nghĩ rằng công việc một thời gian dài nên được coi là một mô hình chống, vì nó sẽ không hoạt động ngay cả trong cluster 2-nút: nếu nút chạy công việc đi xuống, sẽ không có một trong đó sẽ khởi động lại công việc.

Tôi muốn có một công việc lặp lại ví dụ: mỗi giờ, nhưng được chú thích với @DisallowConcurrentExecution. Bằng cách này, bạn đảm bảo rằng chính xác một công việc sẽ được chạy, cả khi nút ban đầu được lưu trữ công việc là lên, và sau khi nó đi xuống.

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