0
私は以下のように定義されたスプリングスケジューラを持っています。私はこのスケジューラーをプログラムで作成したいと思います。スプリングスケジュールされたジョブをプログラマチックに作成する方法は?
私が本当にやりたいことは、自分のデータベースからcronExpressionを取得し、executorJobとTriggerを動的に作成してjobdetailsとトリガーに追加したいと思うことです。 quartzPropertiesは変更されないため、動的に作成する必要はありません。これを行う方法はありますか?
<bean id="testExecutorJob" class="org.springframework.scheduling.quartz.MethodInvokingJobDetailFactoryBean">
<property name="targetObject" ref="testExecutor" />
<property name="targetMethod" value="runTest" />
</bean>
<bean id="testTrigger" class="org.springframework.scheduling.quartz.CronTriggerFactoryBean">
<property name="jobDetail" ref="testExecutorJob" />
<property name="cronExpression" value="0 0 0/3 1/1 * ? *" />
</bean>
<bean class="org.springframework.scheduling.quartz.SchedulerFactoryBean">
<property name="overwriteExistingJobs" value="true"/>
<property name="autoStartup" value="true" />
<property name="quartzProperties">
<props>
<prop key="org.quartz.scheduler.instanceName">MyScheduler</prop>
<prop key="org.quartz.scheduler.instanceId">AUTO</prop>
<prop key="org.quartz.scheduler.skipUpdateCheck">true</prop>
<prop key="org.quartz.jobStore.misfireThreshold">60000</prop>
<prop key="org.quartz.jobStore.class">org.quartz.simpl.RAMJobStore</prop>
<prop key="org.quartz.threadPool.class">org.quartz.simpl.SimpleThreadPool</prop>
<prop key="org.quartz.threadPool.threadCount">5</prop>
</props>
</property>
<property name="jobDetails">
<list>
<ref bean="testExecutorJob" />
</list>
</property>
<property name="triggers">
<list>
<ref bean="testTrigger" />
</list>
</property>
</bean>
私は多くの問題があると思います。私のTestExecutorクラスはorg.quartz.Jobクラスを拡張するのではなく、他のいくつかのクラスを拡張します。 JobBuilder.newJob(myClass.class)には、Jobクラスを拡張するクラスが必要です。 – hellzone
'' implementsではない、 'myClass'は' Job'を実装する必要があります。 –
このインターフェースを実装できますが、TestExecutorクラスに3つの異なるスケジューラーメソッドがあります(runTest() 、runTest2()、runTest3())私はどのようにexecuteメソッドをオーバーライドし、3つの異なるスケジューラータスクでこのメソッドを呼び出すのかわかりません。 – hellzone