Tôi muốn duy trì lịch sử công việc đã được lên lịch bởi một bộ lập lịch thạch anh có các thuộc tính sau: 'thời gian bắt đầu', 'thời gian kết thúc', 'thành công', 'lỗi '.Cách duy trì lịch sử công việc bằng cách sử dụng Lịch hẹn Quartz
Có hai giao diện cho điều này: ITriggerListener
và IJobListener
(Tôi đang sử dụng quy ước đặt tên C# cho giao diện vì tôi đang sử dụng Quartz.NET nhưng cùng một câu hỏi có thể được yêu cầu cho phiên bản Java).
IJobListener
có JobToBeExecuted
và phương thức JobWasExecuted
. Sau này cung cấp một số JobExecutionException
để bạn biết khi nào có sự cố. Tuy nhiên, không có cách nào để tương quan JobToBeExecuted
và JobWasExecuted
. Giả sử công việc của tôi chạy trong mười phút. Tôi bắt đầu nó tại t0
và t0+2
(để chúng chồng lên nhau). Tôi nhận được hai cuộc gọi đến JobToBeExecuted
và chèn hai lần bắt đầu vào bảng lịch sử của tôi. Khi cả hai công việc đều kết thúc tại t1
và t1+2
Tôi nhận được hai cuộc gọi đến JobWasExecuted
. Làm cách nào để biết bản ghi cơ sở dữ liệu nào cập nhật trong mỗi cuộc gọi (để lưu trữ thời gian kết thúc với thời gian bắt đầu tương ứng)?
ITriggerListener
có vấn đề khác. Không có cách nào để nhận được bất kỳ lỗi nào trong phương thức TriggerComplete
khi công việc thất bại.
Làm cách nào để có được hành vi mong muốn?
Bạn có bất cứ ý tưởng nơi tôi có thể tìm thấy như vậy một chìa khóa? –
Hiện tại khóa là JobGroup, JobName và ngày và giờ. Có vẻ như một chìa khóa tốt hơn đang đến trong bản phát hành 2.0. –