使用Amazon SQS的芹菜,消息在“消息Avaliable”

问题描述 投票:0回答:1

我对芹菜有问题。我正在使用Amazon SQS芹菜。我设置了有关芹菜和SQS的所有内容。 任务中的功能。

我成功地将消息发送到SQS,我可以在SQS Portal中看到我的消息在消息可用的部分中。但是他们没有得到任何芹菜工人。我想我必须在“航班中的消息”部分中看到消息。这是屏幕截图:

enter image description here

我是我的

Views.py,我在tasks.py中运行函数。 verify_mail.delay([email protected])

my

tasks.py: from celery import shared_task from time import sleep from django.shortcuts import render, redirect, HttpResponse import boto3 @shared_task def verify_mail(new_email): ses = boto3.client('ses') response = ses.verify_email_identity( EmailAddress = new_email ) return None

如果我这样运行:verify_mail(
[电子邮件保护]

),那没有问题。但是当我用delay()运行时,它不起作用。 我毫无问题地使用此代码开始了芹菜工人:

celery -A myProject worker -l INFO --without-gossip --without-mingle --without-heartbeat -Ofair --pool=solo

mymy
celery.py:

import os from celery import Celery os.environ.setdefault('DJANGO_SETTINGS_MODULE', 'myProject.settings') app = Celery('myProject') app.config_from_object('django.conf:settings', namespace='CELERY') app.autodiscover_tasks() @app.task(bind=True, ignore_result=True) def debug_task(self): print(f'Request: {self.request!r}') my my

SETTINGS.PY:

CELERY_BROKER_URL = "sqs://{aws_access_key}:{aws_secret_key}@".format( aws_access_key=AWS_ACCESS_KEY_ID, aws_secret_key=AWS_SECRET_ACCESS_KEY ) CELERY_ACCEPT_CONTENT = ['application/json'] CELERY_RESULT_SERIALIZER = 'json' CELERY_TASK_SERIALIZER = 'json' CELERY_BROKER_TRANSPORT_OPTIONS = { 'region': 'eu-central-1', } CELERY_RESULT_BACKEND = None CELERY_ENABLE_REMOTE_CONTROL = False CELERY_SEND_EVENTS = False

最好查看队列上的已删除消息。在某个时间,飞行中的消息只是一个快照。如果该消息已经被删除,因为任务不需要很长时间才能完成,那么飞行中就不会有消息。我认为您的任务不长时间完成(也许1秒)。当时,飞行指标中的消息在那时更新了什么几率?
为了确保只需检查队列上的已删除消息或作为测试方式,请在每个任务中添加大约60秒的睡眠即可。这将使任务花费更长的时间,并让您看到它在飞行中。
python boto3 amazon-sqs django-celery
1个回答
0
投票

最新问题
© www.soinside.com 2019 - 2025. All rights reserved.