Я работаю над приложением, в котором у нас есть 100 заданий, которые должны быть запланированы для выполнения.
Вот мой пример файла quartz.property
org.quartz.scheduler.instanceName=QuartzScheduler
org.quartz.jobStore.class = org.quartz.impl.jdbcjobstore.JobStoreTX
org.quartz.threadPool.threadCount=7
org.quartz.jobStore.driverDelegateClass = org.quartz.impl.jdbcjobstore.MSSQLDelegate
org.quartz.jobStore.tablePrefix = QRTZ_
org.quartz.jobStore.dataSource = myDS
org.quartz.dataSource.myDS.driver=com.mysql.jdbc.Driver
org.quartz.dataSource.myDS.URL=jdbc:mysql://localhost:3306/quartz
org.quartz.dataSource.myDS.user=root
org.quartz.dataSource.myDS.password=root
org.quartz.dataSource.myDS.maxConnections=5
Хотя это работает нормально, но мы планируем разделить задания на разные группы, чтобы их было легко поддерживать.
Группы будут уникальными, и мы хотим, чтобы, если пользователь (Admin) создал новую группу, новый экземпляр планировщика должен был быть создан, и все задания в этой группе были обработаны этим экземпляром планировщика в будущем.
Это означает, что если администратор создаст новую группу, скажем NewProductNotification , то мы сможем создать экземпляр планировщика с тем же именем NewProductNotification и всеми заданиями, которые являются частью NewProductNotification * Группа 1009 * должна обрабатываться NewProductNotification экземпляром планировщика.
Как это возможно и как мы можем сохранить эту информацию в Базе данных, чтобы в следующий раз, когда сервер работал, Кварц должен был знать обо всех экземплярах планировщика или нам нужно было добавить эту информацию о новом экземпляре в файл свойств.
Как показано выше в файле proprty, мы используем jdbcjobstore
для обработки всего, используя базу данных.