Trong ứng dụng Mùa xuân của tôi, tôi đang sử dụng SchedulerFactoryBean
để tích hợp với Quartz. Chúng ta sẽ có các trường hợp Tomcat nhóm, và do đó tôi muốn có một môi trường Quartz nhóm, để các công việc tương tự không chạy cùng một lúc trên các máy chủ web khác nhau.Quartz & Spring - Clustered nhưng NOT Persistent?
Để làm điều này, tôi app-context.xml
là như sau:
<bean class="org.springframework.scheduling.quartz.SchedulerFactoryBean">
<property name="triggers">
<list>
<ref bean="cronTrigger"/>
<ref bean="simpleTrigger" />
</list>
</property>
<property name="dataSource" ref="dataSource"/>
<property name="overwriteExistingJobs" value="true"/>
<!-- found in applicationContext-data.xml -->
<property name="applicationContextSchedulerContextKey" value="applicationContext"/>
<property name="quartzProperties">
<props>
<prop key="org.quartz.scheduler.instanceName">SomeBatchScheduler</prop>
<prop key="org.quartz.scheduler.instanceId">AUTO</prop>
<prop key="org.quartz.jobStore.misfireThreshold">60000</prop>
<!--<prop key="org.quartz.jobStore.class">org.quartz.simpl.RAMJobStore</prop>-->
<prop key="org.quartz.jobStore.class">org.quartz.impl.jdbcjobstore.JobStoreTX</prop>
<prop key="org.quartz.jobStore.driverDelegateClass">org.quartz.impl.jdbcjobstore.StdJDBCDelegate</prop>
<prop key="org.quartz.jobStore.tablePrefix">QRTZ_</prop>
<prop key="org.quartz.jobStore.isClustered">true</prop>
<prop key="org.quartz.threadPool.class">org.quartz.simpl.SimpleThreadPool</prop>
<prop key="org.quartz.threadPool.threadCount">25</prop>
<prop key="org.quartz.threadPool.threadPriority">5</prop>
</props>
</property>
</bean>
Tất cả mọi thứ hoạt động tốt, ngoại trừ việc khi tôi cố gắng để loại bỏ hoặc thay đổi kích hoạt, sau đó khởi động lại ứng dụng của tôi, những nguyên nhân cũ vẫn còn tồn tại DB, và vẫn chạy. Tôi không muốn điều này, tôi chỉ muốn họ bị xóa khi ứng dụng dừng (hoặc được khởi động lại). Tôi đặt giá trị của thuộc tính overwriteExistingJobs
thành true, vì tôi nghĩ đó là những gì nó đã làm.
Bất kỳ ý tưởng nào? Tất cả tôi muốn sử dụng DB cho phân cụm, không phải bất kỳ loại kiên trì vượt ra ngoài đó.
Tôi gặp vấn đề tương tự và tôi không thể tìm thấy giải pháp nào. Cuối cùng, tôi chuyển công việc ra khỏi ứng dụng web và lên lịch để chạy qua cron. Tò mò để xem những gì người khác phải nói. – chedine
Sử dụng đất nung? –