<p>你写了日程表,但没有添加到芹菜配置中。所以beat没有看到要发送的预定任务。下面的示例使用<code>celery.config_from_object(__name__)</code>从当前模块获取配置值,但您也可以使用任何其他配置方法。</p>
<p>正确配置后,您将看到beat发出的有关发送计划任务的消息,以及工人接收和运行这些任务时这些任务的输出。</p>
<pre><code>from celery import Celery
from datetime import timedelta
celery = Celery(__name__)
celery.config_from_object(__name__)
@celery.task
def say_hello():
print('Hello, World!')
CELERYBEAT_SCHEDULE = {
'every-second': {
'task': 'example.say_hello',
'schedule': timedelta(seconds=5),
},
}
</code></pre>
<pre class="lang-none prettyprint-override"><code>$ celery -A example.celery worker -B -l info
[tasks]
. example.say_hello
[2015-07-15 08:23:54,350: INFO/Beat] beat: Starting...
[2015-07-15 08:23:54,366: INFO/MainProcess] Connected to amqp://guest:**@127.0.0.1:5672//
[2015-07-15 08:23:54,377: INFO/MainProcess] mingle: searching for neighbors
[2015-07-15 08:23:55,385: INFO/MainProcess] mingle: all alone
[2015-07-15 08:23:55,411: WARNING/MainProcess] celery@netsec-ast-15 ready.
[2015-07-15 08:23:59,471: INFO/Beat] Scheduler: Sending due task every-second (example.say_hello)
[2015-07-15 08:23:59,481: INFO/MainProcess] Received task: example.say_hello[2a9d31cb-fe11-47c8-9aa2-51690d47c007]
[2015-07-15 08:23:59,483: WARNING/Worker-3] Hello, World!
[2015-07-15 08:23:59,484: INFO/MainProcess] Task example.say_hello[2a9d31cb-fe11-47c8-9aa2-51690d47c007] succeeded in 0.0012782540870830417s: None
</code></pre>