我应该使用什么 Django 非全局中间件或 Django 触发器

What should I use Django Non-Global Middlewares or Django triggers

我的问题基本上是我目前正在制作一个基于 Django(3.1) Python(v3.7.9) 的自定义管理系统,我正在其中拉来自第三方工具的数据。该工具没有为我提供我想要进行可视化和分析的每个数据的 webhooks。

Webhook 提供了一些信息,我必须向他们的 API 执行 GET 请求以获取其余详细信息(如果这些信息不在我的数据库中) .他们要求在 5 秒内成功响应 webhook,否则将触发重试。

如果我尝试在 webhook 的函数内执行获取请求,5 秒的时间将超过我想出的解决方案是 Django MiddlewareDjango 触发器 所以哪个最适合我的问题我有点困惑。

注意:我不能降低 Django 版本,因为我必须使用异步函数

对于像 Celery 这样的任务调度程序来说,这将是一个很好的用例。 Django-triggers 是 Celery 调度程序的接口,因此它可能是一个不错的选择。 请记住,Celery 必须 运行 作为 django 旁边的单独进程。

另一个流行的任务调度器是rq-scheduler。 这提供了一个使用 Redis 作为消息队列的简单实现。 *请注意 Loadbalanced/multi-instance 应用程序不容易使用 RQ 进行设置。