Tôi nhớ rằng chúng ta không thể giết công việc hiện tại đang chạy Quartz Job nhưng chúng ta có thể ngắt và kiểm tra boolean ở bất cứ nơi nào là cần thiết cho dù chúng ta cần tiếp tục với các hoạt động tiếp theo hay không.Có thể giết một công việc Quartz hiện đang chạy không?
Ngay cả khi chúng tôi triển khai InterruptableJob và gọi scheduler.interrupt để làm gián đoạn Công việc, công việc hiện tại sẽ vẫn đang chạy trên máy chủ.
Ex:
- Một truy vấn SQL tên đã được kích hoạt bởi các công việc thông qua Hibernate mà phải mất một thời gian dài
- Một cuộc gọi đã được thực hiện cho một máy chủ của bên thứ ba mà máy chủ của bên thứ ba phải mất một chặng đường dài thời gian để đáp ứng
http://neopatel.blogspot.in/2011/05/quartz-stop-job.html http://forums.terracotta.org/forums/posts/list/3191.page
Ai đó có thể sửa chữa sự hiểu biết của tôi và giải thích cho tôi cách chúng ta có thể giết hoặc ngừng việc thực hiện "hiện tại"?
Cảm ơn, Kathir
Tôi đồng ý rằng chúng tôi không thể giết chết công việc một cách dã man bằng Quartz, không phải trong JAVA. Ngoài ra, đồng ý rằng chúng tôi có thể đạt được như vậy thông qua ExecutorService. Trong sự tò mò của tôi, nó đặt ra thêm một câu hỏi tại sao Quartz không thực hiện ExecutorService để họ có thể cung cấp cho chúng ta một cách để giết công việc? Hoặc là có một kế hoạch tương lai trong các cải tiến Quartz. Cảm ơn bạn đã làm rõ và vui lòng cho tôi biết suy nghĩ của bạn. – Kathir
Tại sao nó không thực hiện có lẽ vì nó đã được thiết kế để cung cấp một sự thay thế cho sự thiếu hụt này trong jvm. Nó hoạt động với các jvms cũ và nếu chúng triển khai ExecutorService, thạch anh sẽ được liên kết với một dự án jvm và force gần đây để di chuyển – poussma
Có lẽ chúng có thể hỗ trợ thêm hoặc mở rộng thông qua một cấu hình. Bằng cách đó, họ có thể đạt được khả năng tương thích xuống cũng như mới ... tôi có thiếu sót gì không? Dù sao thì nhờ thời gian và giải thích của bạn ... – Kathir