activiti的缓存(redis)

摘要:
activiti的缓存activit可以使用spring的缓存也可使用默认缓存,这里介绍使用redis进行缓存。activiti的缓存需要实现接口org.activiti.engine.impl.persistence.deploy.DeploymentCache:下面的示例介绍简单的使用方式,无非就是实现CRUD的过程。可以直接复制代码。里面的jedis池参照上一篇博文就行了。

activiti的缓存(redis)

activit可以使用spring的缓存也可使用默认缓存,这里介绍使用redis进行缓存。默认可以在api中找到使用方式。

activiti的缓存需要实现接口org.activiti.engine.impl.persistence.deploy.DeploymentCache:
下面的示例介绍简单的使用方式,无非就是实现CRUD的过程。可以直接复制代码。
里面的jedis池参照上一篇博文就行了。
public class DistributedCache implements DeploymentCache<ProcessDefinitionEntity> {
private Logger logger = LoggerFactory.getLogger(DistributedCache.class);

private JedisPoolManager jedisPoolManager;

public void setJedisPoolManager(JedisPoolManager jedisPoolManager) {
this.jedisPoolManager = jedisPoolManager;
}
public Jedis getJedits(){
return jedisPoolManager.getJedisPool().getResource();
}
public JedisPool getResources(){
return jedisPoolManager.getJedisPool();
}

@Override
public ProcessDefinitionEntity get(String id) {
logger.error("从redis获取数据["+Constants.REDIS_ACT_PRE+id+"]");
byte[] entityBt = null;
JedisPool resources = getResources();
Jedis jedits = null;
try {
resources = getResources();
jedits = getJedits();
entityBt = jedits.hget(Constants.REDIS_ACT_PRE.getBytes(), id.getBytes());
if(entityBt==null)return null;
} catch (Exception e) {
e.printStackTrace();
logger.error("从redis获取数据失败["+Constants.REDIS_ACT_PRE+id+"]-->"+e.toString());
}finally{
if (resources != null) {
resources.returnBrokenResource(jedits);
}
}
return (ProcessDefinitionEntity)SerializationUtils.deserialize(entityBt);
}

@Override
public void add(String id, ProcessDefinitionEntity processDefinitionEntity) {
logger.error("向redis存储数据["+Constants.REDIS_ACT_PRE+id+"]");
JedisPool resources = getResources();
Jedis jedits = null;
try {
resources = getResources();
jedits = getJedits();
jedits.hset(Constants.REDIS_ACT_PRE.getBytes(), id.getBytes(),SerializationUtils.serialize(processDefinitionEntity));
} catch (Exception e) {
e.printStackTrace();
logger.error("向redis存储数据失败["+Constants.REDIS_ACT_PRE+id+"]-->"+e.toString());
}finally{
if (resources != null) {
resources.returnBrokenResource(jedits);
}
}
}

@Override
public void remove(String id) {
logger.error("从redis删除数据["+Constants.REDIS_ACT_PRE+id+"]");
JedisPool resources = getResources();
Jedis jedits = null;
try {
resources = getResources();
jedits = getJedits();
jedits.hdel(Constants.REDIS_ACT_PRE.getBytes(), id.getBytes());
} catch (Exception e) {
e.printStackTrace();
logger.error("从redis删除数据失败["+Constants.REDIS_ACT_PRE+id+"]-->"+e.toString());
}finally{
if (resources != null) {
resources.returnBrokenResource(jedits);
}
}
}

@Override
public void clear() {
logger.error("从redis删除全部流程数据["+Constants.REDIS_ACT_PRE +"]");
JedisPool resources = getResources();
Jedis jedits = null;
try {
resources = getResources();
jedits = getJedits();
jedits.hdel(Constants.REDIS_ACT_PRE.getBytes());
} catch (Exception e) {
e.printStackTrace();
logger.error("从redis删除全部流程失败["+Constants.REDIS_ACT_PRE +"]-->"+e.toString());
}finally{
if (resources != null) {
resources.returnBrokenResource(jedits);
}
}
}

}

免责声明:文章转载自《activiti的缓存(redis)》仅用于学习参考。如对内容有疑问,请及时联系本站处理。

上篇神经网络编程入门【转】WordPress函数the_tags获取文章标签使用方法解析下篇

宿迁高防,2C2G15M,22元/月;香港BGP,2C5G5M,25元/月 雨云优惠码:MjYwNzM=

相关文章

浏览器对象存储数据详解

          浏览器对象存储数据详解   前言       随着需求的发展,浏览器的功能正变的越来越强大,在本地存储数据可以极大的方便人们进行各种操作,如localStroage/sessionStroage等,下面我就记录在项目中碰到然后进行处理的方式,在以后如果有碰到相关或者有更深的理解,会进行补充。   Cookie     Cookie技术是...

【Rdeis 30】Redis常见面试题

介绍:Redis 是一个开源的使用 ANSI C 语言编写、遵守 BSD 协议、支持网络、可基于内存亦可持久化的日志型、Key-Value 数据库,并提供多种语言的 API的非关系型数据库。 传统数据库遵循 ACID 规则。而 Nosql(Not Only SQL 的缩写,是对不同于传统的关系型数据库的数据库管理系统的统称) 一般为分布式而分布式一般遵循...

predis操作大全

predis是php连接redis的操作库,由于它完全使用php编写,大量使用命名空间以及闭包等功能,只支持php5.3以上版本,故实测性能一般,每秒25000次读写,相信改换c语言编写的php扩展后性能会大幅提升(比如使用C扩展phpredishttps://github.com/owlient/phpredis)。 将session数据存放到redis...

redis宕机如何解决?如果是项目上线的宕机呢?

我们先来了解一下  bridge网络模式 他会创建一个docker0桥,看完这个我们就会知道redis哨兵机制的端口了。 之后继续研究redis宕机的解决办法! 宕机: 服务器停止服务 如果只有一台redis, 肯定会造成数据丢失。 多台reids或者是Redis集群,服务器宕机还有办法。   1.从的redis宕机怎么解决?   配置主从复制的时候才...

springboot redis 监听过期key值事件

redis 中的key值过期后,触发通知事件   1、创建springboot工程,创建监听类   maven配置 <dependencies> <dependency> <groupId>org.springframework.boot</groupId> <ar...

spring+redis 集群下的操作

文章就是记录一下工作当中的用到的点,与测试方法以备用,会不断更新。 配置文件spring-redis.xml: <?xml version="1.0" encoding="UTF-8"?><beans xmlns="http://www.springframework.org/schema/beans" xmlns:xs...