java 延时队列_java延时队列

importjava.io.ByteArrayInputStream;importjava.io.ByteArrayOutputStream;importjava.io.ObjectInputStream;importjava.io.ObjectOutputStream;importjava.util.ArrayList;importjava.util.List;importjava.util.Set;importjavax.annotation.PostConstruct;importorg.apache.commons.logging.Log;importorg.apache.commons.logging.LogFactory;importorg.aspectj.weaver.patterns.ThisOrTargetPointcut;importorg.springframework.beans.factory.annotation.Autowired;importorg.springframework.stereotype.Service;importcom.aqh.util.MyProperties;importcom.sun.org.glassfish.external.statistics.Statistic;importredis.clients.jedis.Jedis;importredis.clients.jedis.JedisPool;importredis.clients.jedis.JedisPoolConfig;/*** jedis缓存工具*/@Service("jedisUtil")public classJedisUtil {privateJedisPool pool;

@AutowiredprivateMyProperties properties;private static Log log = LogFactory.getLog(JedisUtil.class);privateJedisUtil() {

}

@SuppressWarnings("unused")

@PostConstruct//指定spring实例化对象之后调用的方法

private voidinit() {

JedisPoolConfig config= newJedisPoolConfig();

config.setMaxActive(Integer.parseInt(properties.getJedisMaxActive()));

config.setMaxIdle(Integer.parseInt(properties.getJedisMaxIdle()));

config.setMaxWait(Long.parseLong(properties.getJedisMaxWait()));

config.setTestOnBorrow(false);

pool= new JedisPool(newJedisPoolConfig(), properties.getJedisHost(),

Integer.parseInt(properties.getJedisPort()),

Integer.parseInt(properties.getJedisTimeout()));

}public voidset(String key, String value) {

Jedis jedis= this.getResource();try{

jedis.set(key, value);

}finally{this.returnResource(jedis);

}

}publicString get(String key) {

Jedis jedis= this.getResource();try{returnjedis.get(key);

}finally{this.returnResource(jedis);

}

}public voidsetObject(String key, Object obj) {

Jedis jedis= this.getResource();try{

jedis.set(key.getBytes(), serialize(obj));

}finally{this.returnResource(jedis);

}

}publicObject getObject(String key) {

Jedis jedis= this.getResource();try{if(jedis.get(key.getBytes()) == null) {return null;

}else{returnunserialize(jedis.get(key.getBytes()));

}

}finally{this.returnResource(jedis);

}

}/*** 删除key

*@paramkey*/

public voiddelkey(String...keys) {

Jedis jedis= this.getResource();try{

jedis.del(keys);

}finally{this.returnResource(jedis);

}

}/*** 设置hash的值

*@paramkey hash中的key

*@paramfield hash中的域

*@paramobj 值*/

public voidsetHash(String key,String field,Object obj) {

Jedis jedis= this.getResource();try{

jedis.hset(key.getBytes(), field.getBytes(), serialize(obj));

}finally{this.returnResource(jedis);

}

}/*** 查找redis中hash的value值

*@paramkey hash中的key

*@paramfield hash中的域

*@return返回对象*/

publicObject getHash(String key,String field) {

Jedis jedis= this.getResource();try{if (jedis.hget(key, field) == null) {return null;

}returnunserialize(jedis.hget(key.getBytes(), field.getBytes()));

}finally{this.returnResource(jedis);

}

}/*** 删除hash中的指定域

*@paramkey

*@paramfields

*@return

*/

publicLong removeHash(String key,String fields) {

Jedis jedis= this.getResource();try{returnjedis.hdel(key.getBytes(),fields.getBytes());

}finally{this.returnResource(jedis);

}

}/*** 返回hash中的所有域

*@paramkey*/

public SethKeys(String key) {

Jedis jedis= this.getResource();try{

Set hkeys =jedis.hkeys(key);returnhkeys;

}finally{this.returnResource(jedis);

}

}/*** 序列化

*@paramobject

*@return

*/

private static byte[] serialize(Object object) {

ObjectOutputStream oos= null;

ByteArrayOutputStream baos= null;try{//序列化

baos = newByteArrayOutputStream();

oos= newObjectOutputStream(baos);

oos.writeObject(object);byte[] bytes =baos.toByteArray();returnbytes;

}catch(Exception e) {

e.printStackTrace();

log.error("jedis序列化异常.....");

}return null;

}/*** 反序列化

*

*@parambytes

*@return

*/

private static Object unserialize(byte[] bytes) {

ByteArrayInputStream bais= null;try{//反序列化

bais = newByteArrayInputStream(bytes);

ObjectInputStream ois= newObjectInputStream(bais);returnois.readObject();

}catch(Exception e) {

e.printStackTrace();

log.info("jedis反序列化异常.....");

}return null;

}/*** 获取jedis

*@return

*/

privateJedis getResource() {

Jedis jedis=pool.getResource();

jedis.auth(properties.getJedisPassword());returnjedis;

}/*** 设置生命周期(过期时间)

*@paramkey

*@paramsecond*/

public void setExpireByKey(String key, intseconds) {

Jedis jedis= null;try{

jedis= this.getResource();

jedis.expire(key, seconds);

}catch(Exception e) {

log.error(e);

}finally{this.returnResource(jedis);

}

}/*** 获取某个Key的余下存活时间(秒)。

*@paramkey

*@return存活时间(秒)*/

public longgetTimeToLive(String key) {

Jedis jedis= null;long sec = -2;try{

jedis= this.getResource();

sec=jedis.ttl(key);

}catch(Exception e) {

log.error(e);

}finally{this.returnResource(jedis);

}returnsec;

}/*** jedis放回连接池

*@paramjedis*/

private voidreturnResource(Jedis jedis) {

pool.returnResource(jedis);

}/*** 释放Redis资源池。*/

public voiddestroy() {if(pool != null) {

pool.destroy();

}

log.info("Redis池已销毁");

}

}

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
智慧校园整体解决方案是响应国家教育信息化政策,结合教育改革和技术创新的产物。该方案以物联网、大数据、人工智能和移动互联技术为基础,旨在打造一个安全、高效、互动且环保的教育环境。方案强调从数字化校园向智慧校园的转变,通过自动数据采集、智能分析和按需服务,实现校园业务的智能化管理。 方案的总体设计原则包括应用至上、分层设计和互联互通,确保系统能够满足不同用户角色的需求,并实现数据和资源的整合与共享。框架设计涵盖了校园安全、管理、教学、环境等多个方面,构建了一个全面的校园应用生态系统。这包括智慧安全系统、校园身份识别、智能排课及选课系统、智慧学习系统、精品录播教室方案等,以支持个性化学习和教学评估。 建设内容突出了智慧安全和智慧管理的重要性。智慧安全管理通过分布式录播系统和紧急预案一键启动功能,增强校园安全预警和事件响应能力。智慧管理系统则利用物联网技术,实现人员和设备的智能管理,提高校园运营效率。 智慧教学部分,方案提供了智慧学习系统和精品录播教室方案,支持专业级学习硬件和智能化网络管理,促进个性化学习和教学资源的高效利用。同时,教学质量评估中心和资源应用平台的建设,旨在提升教学评估的科学性和教育资源的共享性。 智慧环境建设则侧重于基于物联网的设备管理,通过智慧教室管理系统实现教室环境的智能控制和能效管理,打造绿色、节能的校园环境。电子班牌和校园信息发布系统的建设,将作为智慧校园的核心和入口,提供教务、一卡通、图书馆等系统的集成信息。 总体而言,智慧校园整体解决方案通过集成先进技术,不仅提升了校园的信息化水平,而且优化了教学和管理流程,为学生、教师和家长提供了更加便捷、个性化的教育体验。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值