redis實現異步隊列的方法:
1.一般使用list結構作為隊列,rpush生產消息,lpop消費消息,當lpop沒有消息時,需適當sleep一會再重試。
示例:
public class RedisClient {@Resource
private JedisPool jedisPool;
/**
* 向List頭部追加記錄
* @param key
* @param value
* @return 記錄總數
*/
public void rpush(String key, String value) {
Jedis jedis = null;
try {
jedis = jedisPool.getResource();
jedis.rpush(key,value);
} catch (Exception e) {
throw e;
} finally {
if(jedis != null){
jedis.close();
}
}
}
}
//controller寫一個寫入隊列的方法
@PostMapping("insert")
public void setList(@RequestBody QueueTest queueTest){
System.out.println("塞入一條數據");
redisClient.rpush("queueTest", JSON.toJSONString(queueTest));
}