定时执行任务两种方式(项目归纳)
来源:互联网 发布:淘宝运营前景 编辑:程序博客网 时间:2024/05/16 15:06
1、代码实现
定时器:
<bean id="userjob" class="com.gloryscience.base.priv.UserTask"/>
<bean id="eventTask" class="org.springframework.scheduling.quartz.MethodInvokingJobDetailFactoryBean">
<property name="targetObject" ref="userjob"/>
<property name="targetMethod" value="eventQuartz"/>
</bean>
<bean id="doEventTime" class="org.springframework.scheduling.quartz.CronTriggerFactoryBean">
<property name="jobDetail" ref="eventTask"/>
<!--表达式,每天1点执行一次 -->
<property name="cronExpression" value="0 0 1 ? * *"/>
</bean>
<bean id="startQuertz" autowire="no" class="org.springframework.scheduling.quartz.SchedulerFactoryBean"
lazy-init="false">
<property name="triggers">
<list>
<!--作业调度器,list下可加入其他的调度器-->
<ref bean="doTime"/>
<ref bean="doEventTime"/>
<ref bean="doMyjobTask1Time"/>
<ref bean="doMyjobTask2Time"/>
<ref bean="doneCatoryjobTaskTime"/>
</list>
</property>
</bean>
public class UserTask {
@Autowired
private UserService userService; // 用户的业务组件
@Autowired
private AlarmEventService alarmEventService; //事件业务
@Autowired
private EventStatisticsService eventStatisticsService;
@Autowired
private CbatDeviceService cbateService;
/**
* 用户定时任务 超过有效时间的用户设置为锁定
*
* @throws BusinessException
*
* */
public void userQuartz() throws BusinessException {
List<User> users = userService.getInvalidUser();
for (User user : users) {
user.setStatus(EUserStatus.Disable);
}
userService.save(users);
}
………………………………………………
2、数据库
Job里定义一个作业,progarm:action里执行存储过程,
CREATE OR REPLACE PACKAGE BODY "HISTORY_PACKAGES" as
--高负载局端统计
PROCEDURE HIGH_OVERLOAD_CBAT_PRO AS
v_err_num NUMBER;
v_err_msg VARCHAR2(100);
CURSOR HIGH_OVERLOAD_CURSOR IS
SELECT hs.HS_ID, hs.LOCATION, hs.IPADDRESS,hm.hmd_num,HS.AREA_ID,HS.COMPANY_ID,C.on_num
FROM HS_DEVICE hs,(SELECT hm.hs_id,sum(hm.hmd_num) hmd_num FROM HS_MODULE hm GROUP BY hm.hs_id) hm,
(SELECT hs_id,sum(case when h.is_onoff='Y' then 1 else 0 end) on_num from HS_HMD h GROUP BY h.hs_id)C
WHERE hs.hs_id = hm.hs_id(+)
and HS.hs_id = c.hs_id(+) AND hs.DISPLAY_TYPE <> '0';
record_perf HIGH_OVERLOAD_CURSOR%rowType;
BEGIN
open HIGH_OVERLOAD_CURSOR;
loop
fetch HIGH_OVERLOAD_CURSOR
into record_perf;
exit when HIGH_OVERLOAD_CURSOR%notfound;
insert into high_overload_cbat(id, hs_id, company_id, area_id, onoff_num,hmd_num, create_time,ipaddress,location)
values (seq_high_overload_cbat.nextval,record_perf.hs_id,record_perf.company_id,record_perf.area_id,
record_perf.on_num,record_perf.hmd_num,sysdate,record_perf.ipaddress,record_perf.location);
commit;
end loop;
close HIGH_OVERLOAD_CURSOR;
EXCEPTION
WHEN OTHERS THEN
v_err_num := SQLCODE;
v_err_msg := SUBSTR(SQLERRM, 1, 100);
dbms_output.put_line('????????????HIGH_OVERLOAD_CBAT_PRO??????????????????,?????????=' ||
v_err_num || '????????????=' || v_err_msg);
END HIGH_OVERLOAD_CBAT_PRO;
end history_packages;
- 定时执行任务两种方式(项目归纳)
- java项目设置定时执行任务的几种方式
- 定时任务的两种方式
- Spring中使用quartz执行定时任务的两种方式
- 定时执行任务三种方式
- ThinkPHP实现定时执行任务的两种方法
- spring的两种定时任务配置方式
- java定时任务的两种实现方式
- spring容器框架定时任务实现的两种方式
- spring集成定时任务框架 Quartz的两种方式
- Spring 实现 定时任务(两种)
- android中执行定时任务的几种方式
- java定时任务的三种执行方式
- spring两种定时任务
- spring两种定时任务
- JAVA WEB项目定时执行任务
- laravel 任务调度(定时执行任务)
- spring实现定时任务的两种方式之Spring 3整合Quartz 2实现定时任务
- Appium+python Android自动化测试环境搭建
- 需求分析
- 支付宝公共服务窗开发总结
- 解救之道
- 关于兼容北斗版本808协议中位置信息汇报0x0200的解析
- 定时执行任务两种方式(项目归纳)
- 第一个PowerBI报表
- Android Studio:SVN->GIT(二)
- leetcode 445. Add Two Numbers II
- WebStorm安装与使用
- 集合存放null
- JVM垃圾收集器整理汇总以及JVM系列文章推荐
- mysql内置函数清除数据中的空格
- java对list进行排序