2016-11-28 11 views
1

私は毎秒タスクを実行しています。セロリは実際にタスクをすべて実行していないようです。毎秒のタスクにセロリを使用できますか?

セロリは1分ごとのタスクのための良いスケジューラかもしれませんが、2番目ごとのタスクには適さないかもしれないと思います。ここで

enter image description here

私は、次のオプション

 'schedule': 1.0, 
    'args': [], 
    'options': { 
     'expires': 3 
    } 

そして、私ははい

答えて

0

セロリ4.0.0を使用していますを使用しています、私が何を意味するか説明します絵ですCeleryは実際には1秒ほどの時間を処理し、浮動小数点数をとるため、おそらく低くなります。

# file: tasks.py 
from celery import Celery 

celery = Celery('tasks', broker='pyamqp://[email protected]//') 

@celery.task 
def add(x, y): 
    return x + y 


@celery.on_after_configure.connect 
def add_periodic(**kwargs): 
    celery.add_periodic_task(10.0, add.s(2,3), name='add every 10') 

だからsenderはすなわち、app = Celery()実際セロリブローカーである:より良い書かれた例は1/3ウェイダウンhttps://github.com/celery/celery/issues/3589見つけることができます

from celery import Celery 
from celery.schedules import crontab 

app = Celery() 

@app.on_after_configure.connect 
def setup_periodic_tasks(sender, **kwargs): 
    # Calls test('hello') every 10 seconds. 
    sender.add_periodic_task(10.0, test.s('hello'), name='add every 10') 

    # Calls test('world') every 30 seconds 
    sender.add_periodic_task(30.0, test.s('world'), expires=10) 

    # Executes every Monday morning at 7:30 a.m. 
    sender.add_periodic_task(
     crontab(hour=7, minute=30, day_of_week=1), 
     test.s('Happy Mondays!'), 
    ) 

@app.task 
def test(arg): 
    print(arg) 

:ドキュメントhttp://docs.celeryproject.org/en/latest/userguide/periodic-tasks.htmlでの定期的なタスクのエントリを参照してください。

関連する問題