💎一站式轻松地调用各大LLM模型接口,支持GPT4、智谱、星火、月之暗面及文生图 广告
[TOC] # 任务队列简介 ![](https://box.kancloud.cn/eee04d4fd1b80ed8bcb9421ab9c62e3e_1357x501.png) # 命令行 ![](https://box.kancloud.cn/e554dd85581b1a7cf3386f6ebebb094f_423x296.png) # 代码 ## 生成队列-生产者 ~~~ //创建一个jedis客户端对象(redis的客户端连接) Jedis jedis = new Jedis("127.0.0.1", 6379); //设置auth密码 jedis.auth("root"); Random random = new Random(); while (true) { int nextInt = random.nextInt(1000); Thread.sleep(1000 + nextInt); //生成一个任务的id String taskid = UUID.randomUUID().toString(); jedis.lpush("task-queue", taskid); System.out.println("生成了一个任务" + taskid); } ~~~ ## 消耗队列 ~~~ @Test public void testList() throws InterruptedException { //其他方法 Jedis jedis = init(); Random random = new Random(); while (true) { //消耗速度 Thread.sleep(1500); //从任务队列中取出一个任务,同时放入到暂存队列中 String taskid = jedis.rpoplpush("task-queue", "tmp-queue"); //处理任务 if (random.nextInt(19) % 9 == 0) { //模拟失败 //失败情况下,需要将任务从暂存队列弹回任务队列 jedis.rpoplpush("tmp-queue", "task-queue"); System.out.println("该任务处理失败: " + taskid); } else { //模拟成功 //成功的情况下,只需要将任务从暂存队列清除 jedis.rpop("tmp-queue"); System.out.println("任务处理成功: " + taskid); } } } ~~~