【发布时间】:2019-05-28 10:04:27
【问题描述】:
我在生产中遇到了一个奇怪的芹菜问题。目前,生产服务器有 4 个 celery worker 处理我的 django 应用程序注册的所有任务。没有定义自定义队列。工作人员基本上是 4 个独立的主管 conf 文件。
现在,在我的应用程序中,我正在处理 facebook webhook 数据,并且我希望在我的后端只创建一次具有特定 FacebookID 的用户。但是,最近我查了一下,发现有些用户拥有相同的 FacebookID,这不应该发生。
我认为发生的事情是例如FacebookID 666 的用户向我发送了一个 webhook 数据。现在,创建了一个任务,它将在我的数据库中使用 FacebookID 666 创建一个新的用户实例。现在,在我的数据库中创建用户之前,用户用另一个数据打我,这也创建了一个任务,但在不同的工作人员下,因此我得到了两个拥有相同 FacebookID 的用户。
有什么方法可以配置 celery 来处理具有特定 FacebookID 的用户,以便仅在 ONE 工作人员中创建任务?还是我完全误判了这里的情况?
【问题讨论】:
-
在点击时禁用注册按钮,这样用户就不会点击两次,以及其他避免重复表单提交的一般方法(隐藏输入中的唯一 ID 等)-@987654321 @
-
你为你的经纪人使用什么?
-
@WiggyA。这是一个 facebook webhook,每次用户在页面上发送消息时,这些数据都会到达我的服务器
-
@2ps rabbitmq 代理
-
在您的数据库中将
your_facebook_id_keeper_field设置为unique=True怎么样?