0
回答
quartz问题,在Windows环境运行可以触发,在linux环境部分触发,请问问题出现在哪里?
利用AWS快速构建适用于生产的无服务器应用程序,免费试用12个月>>>   

最近新增了两个个定时邮件发送的功能,之前已经有了一个每天凌晨发送的任务,现在新增的是周,月邮件功能,在Windows环境运行三个可以触发,在linux环境只有原有的触发,新增的周,月邮件功能不处罚,网上找了一大堆案例但是还是没发现问题所在,请问下各位大神。

quartz 配置如下

<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:util="http://www.springframework.org/schema/util"
    xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd
    http://www.springframework.org/schema/util http://www.springframework.org/schema/util/spring-util.xsd"
    default-lazy-init="true">

    <description>Quartz的本地Cron式执行任务配置</description>

    <!-- 被Cron执行的普通Spring Bean -->
    <bean id="oneHourJob" class="com.leyy.ws.job.OneHourJob" />
    <bean id="oneDayJob" class="com.leyy.ws.job.OneDayJob" />
    <bean id="oneDayJobForStatMail" class="com.leyy.ws.job.OneDayJobForStatMail" />
    <bean id="oneWeekJobForStatMail" class="com.leyy.ws.job.OneWeekJobForStatMail" />
    <bean id="oneMonthJobForStatMail" class="com.leyy.ws.job.OneMonthJobForStatMail" />

    <!-- Cron JobDetajil, 基于MethodInvokingJobDetailFactoryBean调用普通Spring Bean -->
    <bean id="oneHourJobDetail"
        class="org.springframework.scheduling.quartz.MethodInvokingJobDetailFactoryBean">
        <property name="targetObject" ref="oneHourJob" />
        <property name="targetMethod" value="doJob" />
        <!-- 同一任务在前一次执行未完成而Trigger时间又到时是否并发开始新的执行, 默认为true. -->
        <property name="concurrent" value="false" />
    </bean>
    
    <bean id="oneDayJobDetail"
        class="org.springframework.scheduling.quartz.MethodInvokingJobDetailFactoryBean">
        <property name="targetObject" ref="oneDayJob" />
        <property name="targetMethod" value="doJob" />
        <!-- 同一任务在前一次执行未完成而Trigger时间又到时是否并发开始新的执行, 默认为true. -->
        <property name="concurrent" value="false" />
    </bean>
    
    <bean id="oneDayJobForStatMailDetail"
        class="org.springframework.scheduling.quartz.MethodInvokingJobDetailFactoryBean">
        <property name="targetObject" ref="oneDayJobForStatMail" />
        <property name="targetMethod" value="doJob" />
        <!-- 同一任务在前一次执行未完成而Trigger时间又到时是否并发开始新的执行, 默认为true. -->
        <property name="concurrent" value="false" />
    </bean>
    
    <bean id="oneWeekJobForStatMailDetail"
        class="org.springframework.scheduling.quartz.MethodInvokingJobDetailFactoryBean">
        <property name="targetObject" ref="oneWeekJobForStatMail" />
        <property name="targetMethod" value="doJob" />
        <!-- 同一任务在前一次执行未完成而Trigger时间又到时是否并发开始新的执行, 默认为true. -->
        <property name="concurrent" value="false" />
    </bean>
    
    <bean id="oneMonthJobForStatMailDetail"
        class="org.springframework.scheduling.quartz.MethodInvokingJobDetailFactoryBean">
        <property name="targetObject" ref="oneMonthJobForStatMail" />
        <property name="targetMethod" value="doJob" />
        <!-- 同一任务在前一次执行未完成而Trigger时间又到时是否并发开始新的执行, 默认为true. -->
        <property name="concurrent" value="false" />
    </bean>

    <!-- Cron式Trigger定义 -->
    <bean id="oneHourJobTrigger"
        class="org.springframework.scheduling.quartz.CronTriggerFactoryBean">
        <property name="jobDetail" ref="oneHourJobDetail" />
        <!-- 每小时执行一次 -->
        <property name="cronExpression" value="0 0 0/1 * * ?" />
    </bean>
    
    <bean id="oneDayJobTrigger"
        class="org.springframework.scheduling.quartz.CronTriggerFactoryBean">
        <property name="jobDetail" ref="oneDayJobDetail" />
        <!-- 每天凌晨零点1分执行 -->
        <property name="cronExpression" value="0 1 0 * * ?" />
    </bean>
    
    <bean id="oneDayJobForStatMailTrigger"
        class="org.springframework.scheduling.quartz.CronTriggerFactoryBean">
        <property name="jobDetail" ref="oneDayJobForStatMailDetail" />
        <!-- 每天凌晨零点5分执行 -->
        <property name="cronExpression" value="0 5 0 * * ?" />
    </bean>
    
    <!-- 0 6 0 ? * MON   -->
    <bean id="oneWeekJobForStatMailTrigger"
        class="org.springframework.scheduling.quartz.CronTriggerFactoryBean">
        <property name="jobDetail" ref="oneWeekJobForStatMailDetail" />
        <!-- 每周一凌晨零点6分执行 -->
        <property name="cronExpression" value="0 3 0 * * ?" />
    </bean>
    
    <!-- 0 7 0 1 * ?  -->
    <bean id="oneMonthJobForStatMailTrigger"
        class="org.springframework.scheduling.quartz.CronTriggerFactoryBean">
        <property name="jobDetail" ref="oneMonthJobForStatMailDetail" />
        <!-- 每月一号凌晨零点7分执行 -->
        <property name="cronExpression" value="0 4 0 * * ?" />
    </bean>

    <!-- Quartz本地Schduler -->
    <bean id="localQuartzScheduler"
        class="org.springframework.scheduling.quartz.SchedulerFactoryBean"
        lazy-init="false">
        <!-- Triggers集成 -->
        <property name="triggers">
            <list>
                <ref bean="oneHourJobTrigger" />
                <ref bean="oneDayJobTrigger" />
                <ref bean="oneDayJobForStatMailTrigger" />
                <ref bean="oneWeekJobForStatMailTrigger" />
                <ref bean="oneMonthJobForStatMailTrigger" />
            </list>
        </property>
        <!-- Quartz配置 -->
        <property name="quartzProperties">
            <props>
                <prop key="org.quartz.threadPool.threadCount">10</prop>
            </props>
        </property>
        <!-- 启动时延期5秒开始任务 -->
        <property name="startupDelay" value="5" />
    </bean>

</beans>

 

 

<无标签>
举报
muffler7G
发帖于3个月前 0回/30阅
顶部