Spring SimpleTrigger 定时任务

  1. SchedulerFactoryBean配置
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
      	<bean
    class="org.springframework.scheduling.quartz.SchedulerFactoryBean">
    <property name="triggers">
    <list>
    <!--<ref bean="ptGetDeviceListTask" />定时同步IVS摄像头列表及状态 -->
    <!--<ref bean="ptFrontDeviceSynGisTask"/>定时同步空间数据库摄像头列表及状态与点位信息 -->
    <ref bean ="useInfoSynTask"/>
    </list>
    </property>
    </bean>
  1. SimpleTriggerBean配置

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
     	<bean id="useInfoSynTask" class="org.springframework.scheduling.quartz.SimpleTriggerBean">
    <property name="jobDetail">
    <ref bean="useInfoTime" />
    </property>
    <!-- 这里是服务启动后延时多少时间,开始计时任务,单位ms-->
    <property name="startDelay">
    <value>0</value>
    </property>
    <!-- 这里是每隔多长时间就进行一次计时任务,单位ms : 1分钟 60000 10分钟 600000, 20分钟 1200000, 30分钟 1800000, 60分钟3600000-->
    <property name="repeatInterval">
    <value>60000</value>
    </property>
    </bean>
  2. JobDetailBean配置

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
     	<bean id="useInfoTime" class="org.springframework.scheduling.quartz.JobDetailBean">
    <property name="jobClass">
    <value>
    com.suncreate.pahfpt.web.job.UserInfoSynTime
    </value>
    </property>
    <property name="jobDataAsMap">
    <map>
    <entry key="ptUserInfoService" value-ref="ptUserInfoServiceImpl"/>
    </map>
    </property>
    </bean>
  3. UserInfoSynTime

    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
    public class UserInfoSynTime extends QuartzJobBean {

    private static final Logger log = LoggerFactory.getLogger(UserInfoSynTime.class);

    private PtUserInfoService ptUserInfoService;

    protected UserInfoSynService userInfoSynService = new UserInfoSynService();

    protected void executeInternal(JobExecutionContext arg0) throws JobExecutionException {
    try {
    userInfoSynService.setPtUserInfoService(ptUserInfoService);
    log.info("定时器开始用户同步,开始时间:" + Calendar.getInstance().getTime());
    userInfoSynService.executeSync();
    log.info("定时器结束用户同步,结束时间:" + Calendar.getInstance().getTime());
    } catch (Exception e) {
    e.printStackTrace();
    }
    }

    public void setUserInfoSynService(UserInfoSynService userInfoSynService) {
    this.userInfoSynService = userInfoSynService;
    }

    public void setPtUserInfoService(PtUserInfoService ptUserInfoService) {
    this.ptUserInfoService = ptUserInfoService;
    }

    }
  4. UserInfoSynService

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    public class UserInfoSynService {

    private static final Logger log = LoggerFactory.getLogger(UserInfoSynService.class);

    private PtUserInfoService ptUserInfoService;

    public void executeSync() {
    try {
    synUserInfo(); //具体同步方法
    } catch (Exception e) {
    log.error("定时器同步用户失败...", e);
    }
    }

    public void setPtUserInfoService(PtUserInfoService ptUserInfoService) {
    this.ptUserInfoService = ptUserInfoService;
    }
    }

热评文章