Можно использовать несколько методов безопасного вызова для экземпляра Scheduler, который возвращается StdSchedulerFactory одновременно?Являются ли экземпляры планировщика Quartz безопасными?
ответ
У меня была эта проблема, поэтому я подумал, что посмотрю на исходный код. Предполагая, что вы используете стандартную конфигурацию Quartz (сохранение заданий и триггеров в ОЗУ вместо постоянной записи JobStore), тогда оказывается, что Quartz является потокобезопасным.
Копаясь в источнике, вы, наконец, попадете в RamJobStore, где хранятся все задания и триггеры в памяти.
public void storeJobAndTrigger(SchedulingContext ctxt, JobDetail newJob,
Trigger newTrigger) throws JobPersistenceException {
storeJob(ctxt, newJob, false);
storeTrigger(ctxt, newTrigger, false);
}
В каждом из storeJob (..) и storeTrigger (..) методы, есть отдельные синхронизированные блоки с их собственными уникальными объектами для хранения заданий и триггеров в потокобезопасных образом:
synchronized (jobLock) {
if (!repl) {
// get job group
...
}
}
И синхронизация триггера:
synchronized (triggerLock) {
...
synchronized (pausedTriggerGroups) {
...
}
}
Короче говоря, это может показаться, что вы можете сделать Потокобезопасную вызовы к экземпляру планировщика класса
This post на веб-сайте Terracotta подтверждает это.
- 1. Являются ли изменяемые константы безопасными?
- 2. Являются ли методы потоками безопасными?
- 3. Являются ли .NET-потоки безопасными?
- 4. Являются ли итераторы C++ «безопасными»?
- 5. Статус планировщика Java Quartz
- 6. Возможно ли это с помощью планировщика Quartz?
- 7. Quartz Scheduler/Multiple (Non Clustered) Scheduler Экземпляры
- 8. Являются ли переменные потоками безопасными при чтении?
- 9. Являются ли члены класса перечислены потоками безопасными?
- 10. Являются ли ActiveRecord/nHibernate SQL поколением «безопасными»?
- 11. Являются ли нитки однотипных линий Котлина безопасными?
- 12. Являются ли AMRMClientAsync и AMNMClientAsync поточно-безопасными?
- 13. Являются ли интеллектуальные указатели потоками безопасными?
- 14. Являются ли переводы безопасными в Django?
- 15. Являются ли мои коды php безопасными?
- 16. Являются ли PHP preg_functions многобилетными безопасными?
- 17. Являются ли функции указателями потоками безопасными?
- 18. Являются ли идентификаторы соединения SignalR криптографически безопасными?
- 19. Являются ли модели django нитями безопасными?
- 20. Являются ли окончательные немодифицируемые наборы потоками безопасными?
- 21. Являются ли массивы C# потоками безопасными?
- 22. Являются ли шатры безопасными для использования?
- 23. Являются ли объявления внутренней функции безопасными?
- 24. Являются ли андроид-обработчики потоками безопасными?
- 25. Являются ли переменные среды Apache «безопасными»?
- 26. Являются ли классы входа в ASP.NET безопасными?
- 27. Являются ли scala неизменяемыми коллекциями поточно-безопасными?
- 28. Являются ли глобальные вычислительные свойства потоками безопасными?
- 29. Являются ли статические инициализаторы Java безопасными?
- 30. Являются ли мои формы безопасными для публики?