Python 当视图第一次运行时,任务执行两次

Python 当视图第一次运行时,任务执行两次,python,django,redis,celery,Python,Django,Redis,Celery,我的机器和服务器上的配置基本相同,但由于某种原因,在服务器上,我的一个任务在每次运行时都会执行两次 以下是任务本身: @shared_task def send_congratulations_email(user_id): user = User.objects.get(id=user_id) letter = MailLetter.objects.get(id=5) letter.send_letter({'{{USERNAME}}': user.name}, use

我的机器和服务器上的配置基本相同,但由于某种原因,在服务器上,我的一个任务在每次运行时都会执行两次

以下是任务本身:

@shared_task
def send_congratulations_email(user_id):
    user = User.objects.get(id=user_id)
    letter = MailLetter.objects.get(id=5)
    letter.send_letter({'{{USERNAME}}': user.name}, user.email)
这是我视图的一部分,我将此任务添加到队列中:

if self.kwargs['action'] == 'confirm':
    user.is_active = True
    user.save()
    send_congratulations_email.delay(user_id=user.pk)
正如我在日志中看到的,芹菜工人两次收到此任务:

[2014-11-24 07:06:42,901: INFO/MainProcess] Received task: users.tasks.send_congratulations_email[9b04709b-52ae-4602-8f38-1bebb40986b9]
[2014-11-24 07:06:43,103: INFO/MainProcess] Received task: users.tasks.send_congratulations_email[3138895a-4efb-438d-a20f-c71d42e50b64]
我还注意到,这只发生在我第一次单击指向特定视图的url时。之后,当我打开同一个url时,只有一个任务被执行


顺便说一下,我使用Redis作为消息代理。也许这就是问题所在。但是我也在我的开发机器上使用Redis,那里没有这样的问题。

也许它需要一些额外的资源,并向您的视图发送第二个请求,将
打印
放在您视图的某个地方