Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/google-app-engine/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 芹菜消费者SQS信息_Python_Google App Engine_Amazon Web Services_Celery_Amazon Sqs - Fatal编程技术网

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
    。我是否需要在
    芹菜
    中创建一个
    周期任务
  • 我真的很感激任何能帮助我解决这个问题的建议

    创建_msg_gae.py 我的芹菜文件系统看起来像:

    ./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