微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

芹菜节拍任务未执行

如何解决芹菜节拍任务未执行

我正在尝试通过celery-beat功能扩展django应用程序。我的项目具有以下结构

tools #project name
---manage.py
---webhooks
   ---tasks.py
---tools
   ---celery.py
   ---settings.py
   ---__init__.py

celery.py内部

from celery import Celery
from celery.schedules import crontab

 app=Celery('tools')
 app.config_from_object('django.conf:settings',namespace='CELERY')
 app.autodiscover_tasks()

 @app.task
 def add():
     print('tested')

init .py文件内部

from .celery import app as celery_app

__all__= ('celery_app',)

settings.py文件内部

#I use Amazon SQS as broker  CELERY_broKER_URL="sqs://{aws_access_key}:{aws_secret_key}@".format(aws_access_key=aws_access_key,aws_secret_key=aws_secret_key,)
CELERY_TIMEZONE='Europe/Moscow'
CELERY_BEAT_SHEDULE={
    'test_beat_tasks':{
        'task':'webhooks.tasks.summary','schedule':crontab(minute="*/1")
     },}

在webhooks / tasks.py中,我将crontab任务定义为如下

from celery import Celery 
from tools.celery import app

@app.task(name='summary')
def summary():
    print('cron task test')

所有这些之后,我在一个终端中按如下方式运行了工作者

celery -A tools worker -l INFO

这是输出

-------------- celery@helenisli1 v4.4.7 (cliffs)    --- ***** -----                                      
-- ******* ---- Linux-4.4.0-193-generic-x86_64-with-Ubuntu-16.04-xenial 2020-11-12 17:10:10               
- *** --- * ---
- ** ---------- [config]                             
- ** ---------- .> app:         tools:0x7f49f604f898 - ** ---------- .> transport:   sqs://AKIA5PVSI6ZSFX5N3:**@localhost//                                 - 
** ---------- .> results:     disabled://          - *** --- * --- .> concurrency: 1 (prefork)          
-- ******* ---- .> task events: 
OFF (enable -E to monitor tasks in this worker)                           
--- ***** -----                                       -------------- [queues]                                             
.> celery           exchange=celery(direct) key=celery
                                                 
[tasks]                                                
                                           
. summary                                            
. tools.celery.add


[2020-11-12 17:10:10,177: INFO/Beat] beat: Starting...
[2020-11-12 17:10:10,666: INFO/MainProcess] Connected to sqs://AKIA5PVSI6ZQM3SFX5N3:**@localhost//        
[2020-11-12 17:10:11,218: WARNING/MainProcess] /home/isli/05/env/lib/python3.5/site-packages/celery/fixups/django.py:206:                                      
[2020-11-12 17:10:11,218: INFO/MainProcess] celery@helenisli1 ready.

在另一个终端上运行芹菜节拍

celery -A tools beat -l DEBUG 

芹菜节拍执行命令执行以下输出

LocalTime -> 2020-11-12 17:04:30                     
Configuration ->                                         
. broker ->  sqs://AKIA5PVSI6ZQM5N3:**@localhost//                                                     
. loader -> celery.loaders.app.AppLoader             
. scheduler -> celery.beat.PersistentScheduler       
. db -> celerybeat-schedule                          
. logfile -> [stderr]@%DEBUG                         
. maxinterval -> 5.00 minutes (300s)
[2020-11-12 17:04:30,169: 
DEBUG/MainProcess] Setting default socket timeout to 30                         
[2020-11-12 17:04:30,169: INFO/MainProcess] beat: Starting...                                             
[2020-11-12 17:04:30,176: DEBUG/MainProcess] Current schedule:                                            
<ScheduleEntry: 
celery.backend_cleanup 
celery.backend_cleanup() <crontab: 0 4 * * * (m/h/d/dM/MY)>        
[2020-11-12 17:04:30,176: 
DEBUG/MainProcess] beat: Ticking with max interval->5.00 minutes                
[2020-11-12 17:04:30,177: DEBUG/MainProcess] beat: Waking up in 5.00 minutes.

我看到我的命令没有打印我的摘要任务的输出。 但是在shell中执行任务时

python manage.py shell 
>>>from webhooks.tasks import summary
summary.delay()

在我运行worker的终端中执行任务之后

我做错了什么?谁能指导我?

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。