Использование Spring's LocalTaskExecutorThreadPool с Quartz - PullRequest
1 голос
/ 03 марта 2011

Я пытаюсь использовать LocalTaskExecutorThreadPool с кварцем, но когда я пытаюсь использовать его как кварцевый taskexecutor, я получаю эту ошибку.

ОШИБКА:

arg.springframework.beans.TypeMismatchException: не удалось преобразовать значение свойства типа [org.springframework.scheduling.quartz.LocalTaskExecutorThreadPool] для требуемого типа [org.springframework.core.task.TaskExecutor] для свойства 'taskExecutor'.

Spring Config

<bean id="taskExecutor" class="org.springframework.scheduling.quartz.LocalTaskExecutorThreadPool">

</bean> 

<bean id="schedulerTarget" class="org.springframework.scheduling.quartz.SchedulerFactoryBean" scope="singleton" lazy-init="false">
    <property name="applicationContextSchedulerContextKey">
        <value>applicationContext</value>
    </property>
    <property name="dataSource">
        <ref bean="dataSrcBean"/>
    </property>
    <property name="transactionManager">
        <ref bean="txManager" />
    </property>
    <property name="taskExecutor">
        <ref bean="taskExecutor" />
    </property>
    <property name="quartzProperties">
        <props>
            <prop key="org.quartz.jobStore.class">org.springframework.scheduling.quartz.LocalDataSourceJobStore</prop>
            <prop key="org.quartz.jobStore.tablePrefix">QRTZ_</prop> 
            <prop key="org.quartz.jobStore.driverDelegateClass">org.quartz.impl.jdbcjobstore.MSSQLDelegate</prop>
            <prop key="org.quartz.jobStore.selectWithLockSQL">SELECT * FROM {0}LOCKS WHERE LOCK_NAME = ?</prop>
            <prop key="org.quartz.plugin.shutdownhook.class">org.quartz.plugins.management.ShutdownHookPlugin</prop>
            <prop key="org.quartz.plugin.shutdownhook.cleanShutdown">true</prop>
            <prop key="org.quartz.scheduler.instanceName">Sched1</prop>
            <prop key="org.quartz.scheduler.instanceId">1</prop>
            <prop key="org.quartz.scheduler.rmi.export">false</prop>
            <prop key="org.quartz.scheduler.rmi.proxy">false</prop>
        </props>
    </property>  
</bean>

Вся цель этого состоит в том, чтобы иметь пружинный контроль любого соединения кварца. У меня уже есть диспетчер транзакций Spring, используемый планировщиком, но кажется, что планировщик оставит спящие соединения на моей базе данных.

Thnaks

1 Ответ

2 голосов
/ 03 марта 2011

Вы не должны использовать LocalTaskExecutorThreadPool самостоятельно - SchedulerFactoryBean использует это внутренне, чтобы обернуть TaskExecutor в интерфейсе ThreadPool Кварца.

SchedulerFactoryBean ожидает, что объект taskExecutor будет введен,Вам нужно решить, какую реализацию TaskExecutor вы хотите использовать.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...