sibson/redbeat

rrule: first run delayed

Open

#74 创建于 2017年12月9日

在 GitHub 查看
 (15 评论) (0 反应) (0 负责人)Python (815 star) (122 fork)batch import
help wanted

描述

@concreted : When I use recurrent rule, the first action isn't taken at time.

Example (as you can see, the first run is delayed from 21:20:03 to 21:19:58 without a clear reason):

test.py

from celery import Celery

app = Celery()

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

run.py

from redbeat.schedules import rrule
from redbeat import RedBeatSchedulerEntry
from test import test, app

if __name__ == '__main__':
    schedule = rrule('MINUTELY', interval=3, count=4)
    print(schedule) # <rrule: freq: 5, dtstart: 2017-12-09 20:17:03.882+00:00, interval: 3, count: 4, ...>
    entry = RedBeatSchedulerEntry('test', test.name, schedule, app=app)
    entry.save()

out.log

[2017-12-09 21:19:58,320: INFO/MainProcess] Received task: test.test[7298979f-333e-4aae-b83d-f09cd7e2e7c0]
[2017-12-09 21:20:03,028: INFO/MainProcess] Received task: test.test[832d9876-8171-4c58-9835-ad5013e4b95d]
[2017-12-09 21:23:03,016: INFO/MainProcess] Received task: test.test[b7de89c3-c010-47de-a8c2-49350ff58050]
[2017-12-09 21:26:03,018: INFO/MainProcess] Received task: test.test[1050295c-0ea8-4824-89b2-ac71efa2c1ba]

贡献者指南