| | |
| | |
|
| | | import javax.annotation.Resource;
|
| | |
|
| | | import com.yeshi.fanli.util.RedisManager;
|
| | | import org.springframework.stereotype.Component;
|
| | |
|
| | | import com.yeshi.fanli.util.StringUtil;
|
| | |
|
| | | import redis.clients.jedis.Jedis;
|
| | | import redis.clients.jedis.JedisPool;
|
| | | import redis.clients.jedis.params.SetParams;
|
| | |
|
| | | @Component
|
| | | public class AtomMethodCallManager {
|
| | |
|
| | | @Resource
|
| | | private JedisPool jedisPool;
|
| | | private RedisManager redisManager;
|
| | |
|
| | | /**
|
| | | * 事件执行
|
| | |
| | | */
|
| | | public void excute(String key, AtomMethodCallInterface call) {
|
| | | String redisKey = "atom-" + StringUtil.Md5(key);
|
| | | Jedis jedis = jedisPool.getResource();
|
| | | Jedis jedis = redisManager.getJedis();
|
| | | try {
|
| | | if (jedis.setnx(redisKey, "1") <= 0) {
|
| | | if (StringUtil.isNullOrEmpty(jedis.set(redisKey, "1", new SetParams().nx().ex(60)))) {
|
| | | System.out.println("请稍后再试");
|
| | | return;
|
| | | }
|
| | | jedis.expire(redisKey, 60);
|
| | | call.excute();
|
| | | } finally {
|
| | | jedis.del(redisKey);
|
| | | jedisPool.returnResource(jedis);
|
| | | jedis.close();
|
| | | }
|
| | | }
|
| | |
|