Python 芹菜消费者SQS信息
我不熟悉Python 芹菜消费者SQS信息,python,google-app-engine,amazon-web-services,celery,amazon-sqs,Python,Google App Engine,Amazon Web Services,Celery,Amazon Sqs,我不熟悉芹菜和SQS,我想用它定期检查SQS中存储的消息,然后解雇消费者。消费者和芹菜都生活在EC2上,而信息则通过GAE使用boto库发送 目前,我感到困惑的是: 在creating_msg_gae.py的消息体中,我应该在这里输入什么task信息?我假设此信息是我的芹菜任务的名称 在creating_msg_gae.py的消息体中,url是否被视为消费者要处理的参数(tasks.py中的函数do_url(url)) 目前,我使用命令芹菜工人-A芹菜_c-l info运行芹菜,从命令行看,芹菜
芹菜
和SQS
,我想用它定期检查SQS
中存储的消息,然后解雇消费者。消费者和芹菜
都生活在EC2
上,而信息则通过GAE
使用boto
库发送
目前,我感到困惑的是:
creating_msg_gae.py
的消息体中,我应该在这里输入什么task
信息?我假设此信息是我的芹菜任务的名称
creating_msg_gae.py
的消息体中,url
是否被视为消费者要处理的参数(tasks.py中的函数do_url(url)
)
芹菜工人-A芹菜_c-l info
运行芹菜,从命令行看,芹菜似乎定期检查SQS
。我是否需要在芹菜
中创建一个周期任务
./ce_folder/
celery_c.py, celeryconfig.py, tasks.py, __init__.py
celeryconfig.py
芹菜
tasks.py
请注意,在上面的示例中,您多次重新分配了
BROKER\u TRANSPORT\u OPTIONS
。您在这方面有什么进展吗?我有一个确切的问题,几乎没有相关的文档。
./ce_folder/
celery_c.py, celeryconfig.py, tasks.py, __init__.py
import os
BROKER_BACKEND = "SQS"
AWS_ACCESS_KEY_ID = 'aaa'
AWS_SECRET_ACCESS_KEY = 'bbb'
os.environ.setdefault("AWS_ACCESS_KEY_ID", AWS_ACCESS_KEY_ID)
os.environ.setdefault("AWS_SECRET_ACCESS_KEY", AWS_SECRET_ACCESS_KEY)
BROKER_URL = 'sqs://'
BROKER_TRANSPORT_OPTIONS = {'region': 'us-east-1'}
BROKER_TRANSPORT_OPTIONS = {'visibility_timeout': 60}
BROKER_TRANSPORT_OPTIONS = {'polling_interval': 30}
CELERY_DEFAULT_QUEUE = 'uber_batch'
CELERY_DEFAULT_EXCHANGE = CELERY_DEFAULT_QUEUE
CELERY_DEFAULT_EXCHANGE_TYPE = CELERY_DEFAULT_QUEUE
CELERY_DEFAULT_ROUTING_KEY = CELERY_DEFAULT_QUEUE
CELERY_QUEUES = {
CELERY_DEFAULT_QUEUE: {
'exchange': CELERY_DEFAULT_QUEUE,
'binding_key': CELERY_DEFAULT_QUEUE,
}
}
from __future__ import absolute_import
from celery import Celery
app = Celery('uber')
app.config_from_object('celeryconfig')
if __name__ == '__main__':
app.start()
from __future__ import absolute_import
from celery_c import app
@app.task
def do_something_url(url):
..download file from url
..do some calculations
..upload results files to s3 and return the result url###
return result_url