使用FastAPI框架构建异步任务队列

作者:佚名 上传时间:2023-03-18 运行软件:Python 3.9.6 软件版本:FastAPI 0.65.1, RQ 1.11.0, Redis 3.5.3 版权申诉

本示例展示如何使用FastAPI框架构建一个基于Redis的异步任务队列。当有新任务添加到队列中时,服务器会立即返回一个任务ID,任务会在后台被异步执行,执行结果可以在后续查询任务ID时获取到。通过这种方式,能够实现前后端分离,提高服务器响应速度。

from fastapi import FastAPI
from rq import Queue
from redis import Redis

app = FastAPI()

# 创建Redis连接池
redis_conn = Redis(host="localhost", port=6379)

# 创建任务队列
task_queue = Queue("my_queue", connection=redis_conn)


# 定义异步任务
def async_task():
    pass  # do some stuff


# 添加任务到队列中
@app.post("/tasks/")
async def add_task():
    task = task_queue.enqueue(async_task)
    return {"task_id": task.id}


# 获取任务结果
@app.get("/tasks/{task_id}/")
async def get_task(task_id: str):
    task = task_queue.fetch_job(task_id)
    if task:
        return {"status": task.get_status(), "result": task.result}
    else:
        return {"status": "unknown"}

免责申明:文章和图片全部来源于公开网络,如有侵权,请通知删除 server@dude6.com

用户评论
相关推荐
使FastAPI
本示例展示如何使用FastAPI框架构建一个基于Redis的异步任务队列。当有新任务添加到队列中时,服务器会立即返回一个任务ID,任务会在后台被异步执行,执行结果可以在后续查询任务ID时获取到。通过这
FastAPI 0.65.1, RQ 1.11.0, Redis 3.5.3
Python 3.9.6
2023-03-18 22:45
使FastAPI实现
本示例代码介绍如何使用FastAPI实现一个异步任务队列,用于异步执行较为耗时的操作,以避免阻塞Web请求响应时间。该任务队列基于Python的Celery框架实现,利用Redis作为消息代理。fr
FastAPI 0.63.0, Celery 5.0.2, Redis 3.5.3
Python 3.9.1
2023-03-23 05:07
使FastAPI实现处理
该示例代码介绍了如何使用FastAPI框架与Celery库实现异步任务队列处理。用户可以通过REST API将任务添加到队列中,Celery会异步执行任务并将结果返回给用户。from fastapi
FastAPI 0.68.0, Celery 5.2.2
Python 3.8.10
2023-03-24 11:53
使FastAPI实现后台
本示例展示了使用FastAPI框架实现异步后台任务队列的方法,通过调用FastAPI的异步函数和Celery的任务队列,可以方便地实现异步任务处理的需求。from fastapi import Fa
FastAPI 0.63.0,Celery 5.0.5
Python 3.8
2023-04-30 17:41
使FastAPIAPI
本示例代码演示如何使用FastAPI框架构建异步API,使用asyncio库实现异步操作。FastAPI是一个高性能的Web框架,同时支持异步操作和自动生成文档。本示例中使用到了FastAPI自动生成
FastAPI 0.65.2、Python 3.8.5
Python
2023-04-18 02:54
使FastAPI实现简单的
本示例展示了使用FastAPI作为Web框架,结合Redis实现异步任务队列的方法。通过API添加任务到队列,使用worker异步执行任务并返回执行结果。# 引入必要库,redis用于存放任务队列,
FastAPI 0.70.0, redis 3.5.3, rq 1.10.0
Python 3.9.0
2023-03-20 11:27
基于Sinatra实现
该示例代码展示了如何使用Sinatra框架实现异步任务队列,并通过Sidekiq进行后台任务处理。该代码允许用户在web界面上提交任务,任务将被添加到Redis队列中,Sidekiq进程会从队列中取出
Sinatra 2.1.0,Sidekiq 5.1.3,Redis 4.0.1
Ruby
2023-03-21 07:01
使FastAPIWeb应程序
使用FastAPI框架可以轻松构建高性能的异步Web应用程序。本示例代码演示了如何使用FastAPI框架构建一个简单的异步API,其中包含了基本的路由、请求参数验证和异步处理功能。from fast
FastAPI 0.65.1
Python 3.9.7
2023-04-22 02:13
使Golang实现
通过使用channel和goroutine结合,可以实现功能类似于Celery的异步任务队列。本示例代码实现了一个简单的异步任务队列,并支持动态添加任务。package mainimport (
go1.16.5
GoLand
2023-03-24 14:37
使django实现
介绍使用django和celery搭建异步任务队列,使网站后台任务可以异步执行,提高网站性能和用户体验。# tasks.pyfrom celery import task@task()def
django 2.1, celery 4.2.1
django、celery
2023-03-17 13:13