Spring整合Quartz(JobDetailBean方式)
http://kevin19900306.iteye.com/blog/1397744
java定时任务实现的几种方式:
https://blog.csdn.net/xiaoliuliu2050/article/details/74014463
quartz是开源的任务调度框架,和spring有很好的结合
Quartz和spring的学习:https://blog.csdn.net/yuanlaishini2010/article/category/1407954
/***********************************************
*comment: 定时任务执行时会去判断这个锁是否成功:取得一个锁,如加锁成功 p_expire_date 不为空,否则p_expire_date 为空
************************************************/
PROCEDURE Proc_xxx_Lock(
p_target_type IN VARCHAR2, -- 锁类型
p_target_id IN VARCHAR2, -- 锁 ID
p_lock_mins IN NUMBER, -- 加锁分钟数
p_lock_user IN VARCHAR2, -- 加锁用户
p_expire_date OUT DATE -- 锁失效时间
) IS
v_lock_date DATE := SYSDATE;
v_lock_mins NUMBER := p_lock_mins;
v_expire_date DATE;
BEGIN
p_expire_date := NULL;
IF p_lock_mins IS NULL OR p_lock_mins <= 0 THEN
v_lock_mins := 30;
END IF;
v_expire_date := v_lock_date + (v_lock_mins / 24 / 60);
UPDATE l_lock_xxx l
SET l.lock_date = v_lock_date,
l.expire_date = v_expire_date,
l.locked_by = p_lock_user
WHERE (l.EXPIRE_DATE < SYSDATE OR l.LOCKED_BY = p_lock_user)
AND l.TARGET_ID = p_target_id
AND l.TARGET_TYPE = p_target_type;
IF SQL%FOUND THEN
p_expire_date := v_expire_date;
ELSE
BEGIN
INSERT INTO l_lock_xxx (target_type, target_id, lock_date, locked_by,expire_date, fcu, fcd)
VALUES(p_target_type, p_target_id, v_lock_date, p_lock_user,v_expire_date, p_lock_user, v_lock_date);
p_expire_date:= v_expire_date;
EXCEPTION WHEN DUP_VAL_ON_INDEX THEN
p_expire_date:= NULL;
--RETURN;
END;
END IF;
END Proc_xxx_Lock;
restful服务
传统情况下在java代码里访问restful服务,一般使用Apache的HttpClient,不过这种方法使用起来太过繁琐,spring提供了一种简单便捷的类进行访问,就是RestTemplate
什么是restful?
Rest指的是一组架构约束条件和规则,web应用程序最重要的rest原则是,客户端和服务端之间的交互在请求之间是无状态的,从客户端到服务器的每个请求都必须包含理解请求所必须的的信息,如果服务器在请求之间的任何时间点重启,客户端不会得到通知,此外,无状态请求可以由任何可用服务器来响应。
Restful的实现:restful web服务与RPC样式的web服务。