2 가지 다른 작업이 있는데, 동시에 어떤 작업을 트리거해야합니까?여러 석영 단일 스레드 작업을 구성하는 방법
나는 각각에 대해 별도의 스레드를 제공하고 싶습니다. 은 물론 나는 두 작업이 동일한 스레드를 사용하는 것,
org.quartz.threadPool.threadCount = 1
그러나 그 의미 특성을 설정하는 하나의 스레드를 사용하는 석영을 구성 할 수 있습니다. threadCount = 2로 설정하면 첫 번째 작업이 두 번 트리거되고 다른 작업이 대기 할 수 있습니다.
그렇다면 이러한 작업을 개별 스레드에서 어떻게 독립적으로 실행할 수 있습니까?
내 스프링 구성은 같다 :
<bean name="Job1" class="org.springframework.scheduling.quartz.JobDetailBean">
<property name="jobClass" value="test.job1"/>
</bean>
<bean id="CronTrigger1" class="org.springframework.scheduling.quartz.CronTriggerBean">
<property name="jobDetail" ref="Job1"/>
<property name="cronExpression" value="0 * 6-21 * * ?" />
</bean>
<bean name="Job2" class="org.springframework.scheduling.quartz.JobDetailBean">
<property name="jobClass" value="test.job2"/>
</bean>
<bean id="CronTrigger2" class="org.springframework.scheduling.quartz.CronTriggerBean">
<property name="jobDetail" ref="Job2"/>
<property name="cronExpression" value="0 * 6-21 * * ?" />
</bean>
<bean class="org.springframework.scheduling.quartz.SchedulerFactoryBean" destroy-method="destroy">
<property name="waitForJobsToCompleteOnShutdown">
<value>true</value>
</property>
<property name="configLocation">
<value>classpath:quartz.properties</value>
</property>
<property name="triggers">
<list>
<ref bean="CronTrigger1"/>
<ref bean="CronTrigger2"/>
</list>
</property>
</bean>
왜 더 큰 threadvpool 때문에 첫 번째 작업이 두 번 스케줄링 될 것이라고 생각합니까? – Perception
매분마다 작업 실행을 예약하고 마지막 실행에 1 분 이상이 걸리면 스케줄러는 작업의 두 번째 인스턴스를 병렬로 실행할 수 있습니다 ... 맞습니까? – never
두 개의 다른 SchedulerFactoryBeans가 필요할 수도 있습니다. 왜이 btw가 필요한가요? 클래스가 스레드로부터 안전하지 않습니까? – chrislovecnm