powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Java [игнор отключен] [закрыт для гостей] / Quartz job выполняется с задержкой
1 сообщений из 1, страница 1 из 1
Quartz job выполняется с задержкой
    #38433750
vgrinder
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Здравствуйте.

Имеется следующая конфигурация:
Код: xml
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
32.
33.
34.
35.
36.
37.
38.
39.
40.
41.
42.
43.
44.
45.
46.
47.
48.
49.
50.
51.
52.
53.
54.
55.
56.
57.
58.
59.
60.
61.
62.
63.
64.
65.
66.
67.
<!-- Scheduler -->
	<bean id="commonSchedulerFactoryBean" class="org.springframework.scheduling.quartz.SchedulerFactoryBean">
		<qualifier value="job-planner"/>
		<property name="autoStartup" value="false"/>
		<property name="dataSource" ref="scheduleDataSource"/>
		<property name="jobFactory">
			<bean class="org.springframework.scheduling.quartz.SpringBeanJobFactory"/>
		</property>
		<property name="overwriteExistingJobs" value="false"/>
		<property name="applicationContextSchedulerContextKey" value="applicationContext"/>
		<property name="transactionManager" ref="scheduleTxManager"/>
		<property name="quartzProperties">
			<props>
				<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.isClustered">false</prop>
				<prop key="org.quartz.jobStore.misfireThreshold">180000</prop>
				<prop key="org.quartz.jobStore.clusterCheckinInterval">90000</prop>
				<prop key="org.quartz.threadPool.class">org.quartz.simpl.SimpleThreadPool</prop>
				<prop key="org.quartz.threadPool.threadCount">1</prop>
				<prop key="org.quartz.scheduler.skipUpdateCheck">true</prop>
			</props>
		</property>
	</bean>

	<bean name="mailingJob" class="org.springframework.scheduling.quartz.JobDetailBean" autowire="constructor">
		<property name="jobClass" value="com.test.MyJob"/>
		<property name="jobDataAsMap">
			<map>
				<entry key="mailTask" value-ref="mailTask" />
			</map>
		</property>
		<property name="name" value="Mail"/>
		<property name="group" value="EventMailing"/>
		<property name="requestsRecovery" value="true"/>
		<property name="durability" value="true"/>
	</bean>

<!-- Executor -->
	<bean id="schedulerFactoryBean" class="org.springframework.scheduling.quartz.SchedulerFactoryBean">
		<qualifier value="job-executor"/>
		<property name="jobDetails">
			<array>
				<ref bean="mailingJob" />
			</array>
		</property>
		<property name="dataSource" ref="scheduleDataSource"/>
		<property name="jobFactory">
			<bean class="org.springframework.scheduling.quartz.SpringBeanJobFactory"/>
		</property>
		<property name="overwritemoExistingJobs" value="false"/>
		<property name="applicationContextSchedulerContextKey" value="applicationContext"/>
		<property name="quartzProperties">
			<props>
				<prop key="org.quartz.scheduler.idleWaitTime">180000</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.isClustered">false</prop>
				<prop key="org.quartz.jobStore.misfireThreshold">180000</prop>
				<prop key="org.quartz.jobStore.clusterCheckinInterval">90000</prop>

				<prop key="org.quartz.threadPool.class">org.quartz.simpl.SimpleThreadPool</prop>
				<prop key="org.quartz.threadPool.threadCount">5</prop>
				<prop key="org.quartz.scheduler.skipUpdateCheck">true</prop>
			</props>
		</property>
	</bean>



В Scheduler-e есть метод:
Код: java
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
        @Transactional
	public void triggerMailSend(String recipient, String report) {
		try {
			JobDataMap jobDataMap = new JobDataMap();
			jobDataMap.put("recipient", recipient);
			jobDataMap.put("details", report);
			commonSchedulerFactoryBean.getObject().triggerJob("Mail", "EventMailing", jobDataMap);
		} catch (SchedulerException e) {
			throw new RuntimeException(e);
		}
	}



При вызове этого метода в таблице QRTZ_TRIGGERS появляется запись с одинаковыми NEXT_FIRE_TIME и START_TIME, и статусом WAITING.
Обрабатывается она за время от 40 сек до 2 минут приблизительно.

Подскажите, что именно влияет на время обработки. (какие параметры, условия и т.д.). И как можно добится немедленного выполнения job-а?

Спасибо.
...
Рейтинг: 0 / 0
1 сообщений из 1, страница 1 из 1
Форумы / Java [игнор отключен] [закрыт для гостей] / Quartz job выполняется с задержкой
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]