quart定时任务

本文介绍了如何在Quart项目中利用quartz库创建定时任务,每10秒向数据库插入一条数据。首先,创建定时任务类,包含插入数据的方法。接着,在Quart配置文件中配置定时任务,设定任务执行间隔。通过targetObject和targetMethod指定期望执行的类和方法,并用cron表达式设置触发间隔。最后,配置调度工厂并启动项目,观察到数据按预期间隔插入。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

在SSM项目里面使用quart实现定时任务每10秒插入一条数据,使用xml配置方式实现。

1.创建定时任务类
package com.tencent.tusi.test.quartzTest;

import com.tencent.tusi.business.entity.TSystemUsers;
import com.tencent.tusi.business.service.TSystemUsersService;
import org.springframework.beans.factory.annotation.Autowired;

import static com.tencent.tusi.currency.utils.DateUtil.now;

public class InsertUserAfterTenSecond {

    @Autowired
    public TSystemUsersService tSystemUsersService;

    public void insertRecord(){

        TSystemUsers user=new TSystemUsers();
        user.setcUserName("汤师爷");
        user.setcPassWord("984646");
        user.setcAddress("m78");
        user.setcPhone("11000");
        user.setcSex("女");
        user.setcDepartmentId(2);
        user.setRegisterTime(now());

        int i = tSystemUsersService.insertUser(user);
        if(i>0){
            System.out.println("===========================插入了一条===========================");
        }
    }

}

定时任务为插入一条数据,返回insert的操作返回数。

2.在quart配置文件里面配置定时任务

设置为每隔10秒执行一次对应的任务
①配置任务类

<!--测试用例,每隔10秒插入一条数据-->
		<bean id="insertUserAfterTenSecond" class="org.springframework.scheduling.quartz.MethodInvokingJobDetailFactoryBean">
			<property name="targetObject">
				<bean class="com.tencent.tusi.test.quartzTest.InsertUserAfterTenSecond"/>
			</property>
			<property name="targetMethod" value="insertRecord"/>
			<!--不并发调度-->
			<property name="concurrent" value="false"/>
		</bean>

targetObject属性指定定时任务类,内容为任务类的路径。targetMethod属性指定任务类下要执行的具体方法。concurrent属性是是否开启作业并发调度。
②定义定时任务触发时间

<!--定时任务测试,每隔10秒想t_system_users中插入一条数据-->
		<bean id="inertUserTrigger" class="org.springframework.scheduling.quartz.CronTriggerFactoryBean">
			<property name="jobDetail" ref="insertUserAfterTenSecond"/>
			<!--定时时间,10秒一次,cron表达式-->
			<property name="cronExpression" value="*/10 * * * * ?"/>
		</bean>

jobDetail属性获取定时任务类的信息。cronExpression(cron表达式)是定义触发时间,这里是每隔10秒触发一次。
③ 配置调度工厂

<bean id="quartzSchedulerFactoryBean" class="org.springframework.scheduling.quartz.SchedulerFactoryBean">  
			<!-- <property name="autoStartup" value="true"/> --><!-- 自动启动 -->
         <!-- <property name="startupDelay" value="15" /> -->
			<property name="triggers">  
		    <list>  
				<ref bean="inertUserTrigger"/>
		    </list>
		    </property>
		    <property name="taskExecutor" ref="executor" />
		</bean>  

使用< ref >标签指定Trigger触发器。
运行项目,可以看到数据库里面已经插入了定时任务的数据,时间间隔为10秒
定时任务

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值