gpt4 book ai didi

Django celery 先进先出

转载 作者:可可西里 更新时间:2023-11-01 11:44:58 25 4
gpt4 key购买 nike

所以我将这 2 个应用程序与 REST API(json 消息)连接起来。一个用 Django 编写,另一个用 Php 编写。我在两边都有一个精确的数据库副本(使用 mysql)。

当我在其中一个上按下“提交”时,我希望将该数据保存在当前应用程序数据库中,并使用 celery/redis 启动 cron 作业以使用 rest 为另一个应用程序更新远程数据库。

我的问题是,我如何将同一个工作人员分配给我的任务以保持 FIFO 顺序?

我需要我的数据保持一致,FIFO 非常重要。

好的,我将进一步详细说明我想做的事情:

所以我有这个 Django 应用程序,当我在填写表格后按下提交时,我的 celery worker 醒来并负责获取提交的数据并发布到远程服务器。我可以毫无问题地做到这一点。

现在,想象一下我的互联网在那个确切的时间掉线了,我的 celery worker 一直在重试发送直到成功但是想象我在提交之前的数据之前又做了一次提交,我的数据在另一个远程服务器上不会保持一致.

现在这是我的问题。我无法使用 celery 提供的重试选项发出此请求 FIFO,所以我需要一些帮助来解决这个问题。

最佳答案

这是我从另一个论坛得到的答案:

在 celery 中使用命名队列: http://docs.celeryproject.org/en/latest/userguide/workers.html#queues

用一个 worker 启动一个 worker 进程: http://docs.celeryproject.org/en/latest/django/first-steps-with-django.html#starting-the-worker-process

将此工作人员设置为从适当的队列中消费: http://docs.celeryproject.org/en/latest/userguide/workers.html#queues-adding-consumers

对于 fifo 部分,我可以在发送请求之前按 fifo 顺序对我的 celery broker 进行排序

关于Django celery 先进先出,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13800988/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com