Python中文
首页
教程
问答
标签
搜索
登录
注册
收到芹菜任务但未执行
回答此问题可获得
20
贡献值,回答如果被采纳可获得
50
分。
<p>我有收到的芹菜任务,但不会执行。我使用的是Python2.7和Celery 4.0.2。我的消息代理是amazonsqs。在</p> <p>这是<code>celery worker</code>的输出:</p> <pre><code>$ celery worker -A myapp.celeryapp --loglevel=INFO [tasks] . myapp.tasks.trigger_build [2017-01-12 23:34:25,206: INFO/MainProcess] Connected to sqs://13245:**@localhost// [2017-01-12 23:34:25,391: INFO/MainProcess] celery@ip-111-11-11-11 ready. [2017-01-12 23:34:27,700: INFO/MainProcess] Received task: myapp.tasks.trigger_build[b248771c-6dd5-469d-bc53-eaf63c4f6b60] </code></pre> <p>{{cd2>没有尝试添加。其他可能有用的信息:</p> <ul> <li>Celery总是接收8个任务,尽管有大约100条消息等待接收。在</li> <li>实际上,每4到5次,一个任务就会运行并完成一次,但之后它又会卡住。在</li> <li>这是<code>ps aux</code>的结果。注意,它在3个不同的进程中运行celery(不知道为什么),其中一个进程的CPU利用率为99.6%,即使它没有完成任何任务或任何事情。在</li> </ul> <p>流程:</p> ^{pr2}$ <p>设置:</p> <pre><code>CELERY_BROKER_URL = 'sqs://%s:%s@' % (AWS_ACCESS_KEY_ID, AWS_SECRET_ACCESS_KEY.replace('/', '%2F')) CELERY_BROKER_TRANSPORT = 'sqs' CELERY_BROKER_TRANSPORT_OPTIONS = { 'region': 'us-east-1', 'visibility_timeout': 60 * 30, 'polling_interval': 0.3, 'queue_name_prefix': 'myapp-', } CELERY_BROKER_HEARTBEAT = 0 CELERY_BROKER_POOL_LIMIT = 1 CELERY_BROKER_CONNECTION_TIMEOUT = 10 CELERY_DEFAULT_QUEUE = 'myapp' CELERY_QUEUES = ( Queue('myapp', Exchange('default'), routing_key='default'), ) CELERY_ALWAYS_EAGER = False CELERY_ACKS_LATE = True CELERY_TASK_PUBLISH_RETRY = True CELERY_DISABLE_RATE_LIMITS = False CELERY_IGNORE_RESULT = True CELERY_SEND_TASK_ERROR_EMAILS = False CELERY_TASK_RESULT_EXPIRES = 600 CELERY_RESULT_BACKEND = 'django-db' CELERY_TIMEZONE = TIME_ZONE CELERY_TASK_SERIALIZER = 'json' CELERY_ACCEPT_CONTENT = ['application/json'] CELERYD_PID_FILE = "/var/celery_%N.pid" CELERYD_HIJACK_ROOT_LOGGER = False CELERYD_PREFETCH_MULTIPLIER = 1 CELERYD_MAX_TASKS_PER_CHILD = 1000 </code></pre> <p>报告:</p> <pre><code>$ celery report -A myapp.celeryapp software -> celery:4.0.2 (latentcall) kombu:4.0.2 py:2.7.12 billiard:3.5.0.2 sqs:N/A platform -> system:Linux arch:64bit, ELF imp:CPython loader -> celery.loaders.app.AppLoader settings -> transport:sqs results:django-db </code></pre>
0 条评论
分类:
Python问答
请先
登录
后评论
默认排序
时间排序
1 个回答
匿名
1天前
擅长:python、mysql、java
<p>我也有同样的问题。毗湿奴的答案对我有用。也许还有另一种解决方案不需要向worker命令添加这些额外的参数。在</p> <p>我的问题是由于在任务代码中间导入其他模块而导致的。当您启动worker时,似乎celery获取所有使用过的模块,它只查看.py文件的开头。在运行期间,它不会引发任何错误,只是退出。在我移动所有的“导入”和“来自…”。。。导入…“到代码文件的开头,就可以了。在</p>
请先
登录
后评论
针对此问题:
更多的回答
关注
89
关注
收藏
1
收藏,
216
浏览
网友 提问于 2天前
相关Python问题
使用urllib2进行Web抓取
3 回答
使用urllib2进行Web报废
10 回答
使用urllib2进行简单https身份验证时出现问题(用于获取PayPal OAUTH承载令牌)
6 回答
使用urllib2进行节流
6 回答
使用urllib2远程读取pdf
7 回答
使用urllib2通过flask发送图像
2 回答
使用urllib2通过对等错误重置连接
1 回答
使用urllib2避免503个错误
8 回答
使用urllib2音调符号打开页面
6 回答
使用urllib3 UnicodeDecodeError上载文件
8 回答
使用urllib3.PoolManag时看到ClosedPoolError
6 回答
使用urllib3下载文件的最佳方式是什么
6 回答
使用urllib3下载网页
4 回答
使用urllib3忽略证书验证
4 回答
使用urllib3时的ssl.SSLError
7 回答
使用urllib3的TLS1.1的HTTP GET网站
5 回答
使用urllib3获取JSON d
3 回答
使用urllib3解析来自httpget请求的XML响应
4 回答
使用urllib3进行HTTPS调用时,请使用服务器的ssl证书而不是根CA证书
9 回答
使用urllib3进行多部分表单编码和发布
10 回答