因此,我将这2个应用程序与RESTneneneba API(json消息)连接。一个用Django写,另一个用Php写。我在两边都有一个精确的数据库副本(使用mysql)。
当我在其中一个应用程序上按"提交"时,我希望将数据保存在当前应用程序数据库中,并使用celener/redis启动cron作业,以使用rest更新另一应用程序的远程数据库。
我的问题是,如何将同一个工作人员分配给我的任务以保持FIFO顺序
我需要我的数据是一致的,先进先出非常重要。
好的,我将进一步详细说明我想做什么:
所以我有了这个django应用程序,当我填写完表格后按下提交时,我的芹菜工人会醒来,负责处理提交的数据并将其发布到远程服务器。这我可以毫无问题地完成。
现在,想象一下,我的互联网在那个确切的时间瘫痪了,我的芹菜工人一直在尝试发送,直到成功。但想象一下,在我之前的数据提交之前,我又做了一次提交,我的数据在另一个远程服务器上不会一致。
现在这是我的问题。我无法使用芹菜提供的重试选项来进行FIFO请求,所以我需要一些帮助来解决这个问题。
这是我从另一个论坛得到的答案:
将命名队列与芹菜一起使用:http://docs.celeryproject.org/en/latest/userguide/workers.html#queues
用一个工人启动工人流程:http://docs.celeryproject.org/en/latest/django/first-steps-with-django.html#starting-工人处理
将此工作进程设置为从适当的队列中消费:http://docs.celeryproject.org/en/latest/userguide/workers.html#queues-添加消费者
对于fifo部分,我可以在发送我的请求之前,在fifo订单中对我的芹菜经纪人进行排序