异步任务 BaiChuan(百川)

circle-info

百川汇聚终成海,大海泛波扬激情

即使是最小的水流,也能最终汇聚成浩瀚的海洋。

通过百川使得每个 handler 都可以贡献自己的一份力量。

1 部署及配置

1.1 开启百川自动消费任务

CACHES = {
    "baichuan": "redis://@localhost:6379/0?socket_timeout=2&socket_connect_timeout=0.2&retry_on_timeout=false",
    }

在 CACHES 中添加 baichuan 的 redis 连接配置,即开启百川 worker 消费任务

开启了百川 worker 消费任务的 butterfly 仅消费当前进程已有的 handler

1.2 部署百川 handler

将 examples/baichuan 拷贝到 butterfly/handlers/ 下即可

部署百川 handler 后,可通过 HTTP 请求发起异步任务

2 使用

2.1 百川消息状态流转图

2.2 接口

2.2.1 发布任务

方法

参数

例子

2.2.2 任务查看

方法

参数

例子

响应

3 番外

3.1 使用 MQ 库进行发消息

3.1.1 仅发消息

3.1.2 设置消息的保留时长

参数

3.1.3 重复消息跳过

若调用的是同样的参数的任务仍在队列中或者正在处理中,则进行跳过

3.2 消息结果获取

3.2.1 例子

阻塞

非阻塞

3.2.2 获取消息

3.3 Msg 数据轮转

Redis 中的 Msg key 为

circle-info

mq:msg:xxxx

可以 hgetall mq:msg:xxxx

3.3.1 处于 Queued 状态的 Msg

存储在 Redis 中的 Field,此时 key 没有过期时间

3.3.2 处于 Started 状态的 Msg

存储在 Redis 中的 Field,此时 key 没有过期时间

3.3.3 处于 Finished/Failed 状态的 Msg

存储在 Redis 中的 Field,此时 key 有过期时间

3.3.4 异常状态的 Msg

消息被删除,但是 handle_worker 又将数据写入

Last updated