python2处理耗时任务_如何实现异步任务处理来解决耗时操作问题

本文介绍了如何利用redis的list结构实现异步任务处理,通过讲解同步、异步、阻塞、非阻塞的概念,展示了如何将耗时任务放入redis list,并用一个常驻脚本进行处理,从而提高并发性能。
摘要由CSDN通过智能技术生成

今天说一个在实际项目中特别实用的解决并发耗时问题的办法:异步任务处理。这里采用 redis list 结构来实现。涉及知识点:

1、redis list 结构

2、阻塞、非阻塞、同步、异步的概念

3、如何实现一个异步处理任务实战

同步、异步、阻塞、非阻塞

首先来说同步和异步,这两个概念是针对通信双方消息传送的响应来说的,如果 A 请求 B,B 马上响应 A,这是同步,而如果 A 请求 B ,B 说好的,我已经接受任务,然后把任务交由 C,而 C 是一个专门负责处理任务的,这种模型就是异步。

而阻塞和非阻塞,通常对应于程序请求响应,比如我们常见的 IO 处理,一个进程在处理 IO 操作时,需要等待 IO 操作完成,如果等着,就是阻塞,如果这个时候它不等着,而是转身先去做别的事情,走到 IO 操作完成再回来处理,这种就是非阻塞。

在网上看到一个比较好的关于这两组概念的区别,即同步和异步是描述行为的,即我是如果去处理当有类似阻塞这种情况的请求,比如 IO 操作,比如耗时操作,而阻塞和非阻塞描述的是一种状态。

redis 列表介绍

首先在面试中经常会问一个问题:redis 支持哪几种数据结构?

网上一般的回答是五种,分别是 string、list、set、sorted set、hash,在官方文档还有其他三种,Bitmaps、HyperLogLogs,还有 stream,参考链接如下:

https://redis.io/topic

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值