Có thể đồng thời nhiều hơn một đề tài gọi phương thức an toàn trên phiên bản Scheduler được trả lại bởi StdSchedulerFactory?Các chủ đề của trình lên lịch thạch anh có an toàn không?
12
A
Trả lời
9
Tôi gặp vấn đề này nên tôi nghĩ tôi sẽ xem mã nguồn. Giả sử bạn đang sử dụng cấu hình chuẩn của Quartz (lưu trữ các công việc và các trigger trong RAM thay vì một JobStore liên tục), thì có vẻ như Quartz là thread an toàn.
Đào sâu vào nguồn, cuối cùng bạn sẽ đến được RamJobStore, nơi lưu trữ tất cả công việc và trình kích hoạt trong bộ nhớ.
public void storeJobAndTrigger(SchedulingContext ctxt, JobDetail newJob,
Trigger newTrigger) throws JobPersistenceException {
storeJob(ctxt, newJob, false);
storeTrigger(ctxt, newTrigger, false);
}
Trong mỗi phương pháp storeJob (..) và storeTrigger (..), có khối đồng bộ riêng biệt với các đối tượng của riêng mình để lưu trữ công việc và kích hoạt trong một sợi cách an toàn:
synchronized (jobLock) {
if (!repl) {
// get job group
...
}
}
Và đồng bộ hóa một trigger:
synchronized (triggerLock) {
...
synchronized (pausedTriggerGroups) {
...
}
}
Vì vậy, trong ngắn hạn, có thể thấy rằng bạn có thể làm chủ đề cuộc gọi an toàn để một thể hiện của lớp Scheduler
2
This post trên trang web Terracotta xác nhận.
Các vấn đề liên quan
- 1. thạch anh chương trình mẫu lên lịch đưa ra lỗi
- 2. thạch anh lên lịch tối đa số chủ đề sở hữu
- 3. IIS app pool recycle + lịch trình thạch anh
- 4. Có thạch anh thực hiện công việc chỉ trong một sợi khi có nhiều chủ đề thạch anh
- 5. Chủ đề MSMQ có an toàn không?
- 6. Chủ đề này có an toàn không?
- 7. Chủ đề NSPersistentStoreCoordinator có an toàn không?
- 8. Chủ đề libuv có an toàn không?
- 9. Chủ đề java.util.Hashtable có an toàn không?
- 10. Chủ đề SecureRandom có an toàn không?
- 11. Chủ đề của Win32 Registry có an toàn không?
- 12. Chủ đề EPiServer có an toàn không?
- 13. Chủ đề DocumentBuilder.parse() có an toàn không?
- 14. Chủ đề console.writeline có an toàn không?
- 15. Chủ đề NSFileManager có an toàn không?
- 16. Có an toàn để sử dụng các chức năng chủ đề 'Không an toàn' không?
- 17. Chủ đề PrintWriter của socket Java có an toàn không?
- 18. Là chủ đề của ImmutableList.Builder có an toàn không?
- 19. Có an toàn cho chủ đề của PHP không?
- 20. Chủ đề DataContractSerilaizer của WCF có an toàn không?
- 21. Chủ đề an toàn chủ đề - tĩnh hay không?
- 22. Các destructor có nên là chủ đề an toàn không?
- 23. Về chủ đề an toàn của servlet
- 24. An toàn chủ đề của SocketOutputStream
- 25. An toàn chủ đề của JTextArea.append
- 26. xóa kích hoạt trong thạch anh
- 27. Trong SignalR là chủ đề Hub.Context có an toàn không?
- 28. Chủ đề phiên Django có an toàn không?
- 29. Chủ đề Java Regex có an toàn không?
- 30. Lỗi Trình lập lịch biểu Thạch anh khi Lập công việc