我正在尝试使用Django-Celery-RabbitMQ组合创建一个简单的背景周期性任务.我安装了Django 1.3.1,我下载并设置了djcelery.以下是我的settings.py文件的样子:
BROKER_HOST = "127.0.0.1"
BROKER_PORT = 5672
BROKER_VHOST = "/"
BROKER_USER = "guest"
BROKER_PASSWORD = "guest"
....
import djcelery
djcelery.setup_loader()
...
INSTALLED_APPS = (
'djcelery',
)
Run Code Online (Sandbox Code Playgroud)
我在我的应用程序文件夹中放入了一个'tasks.py'文件,其中包含以下内容:
from celery.task import PeriodicTask
from celery.registry import tasks
from datetime import timedelta
from datetime import datetime
class MyTask(PeriodicTask):
run_every = timedelta(minutes=1)
def run(self, **kwargs):
self.get_logger().info("Time now: " + datetime.now())
print("Time now: " + datetime.now())
tasks.register(MyTask)
Run Code Online (Sandbox Code Playgroud)
然后我启动我的django服务器(本地开发实例):
python manage.py runserver
Run Code Online (Sandbox Code Playgroud)
然后我启动了这个celerybeat过程:
python manage.py celerybeat --logfile=<path_to_log_file> -l DEBUG
Run Code Online (Sandbox Code Playgroud)
我可以在日志中看到这样的条目:
[2012-04-29 07:50:54,671: DEBUG/MainProcess] …Run Code Online (Sandbox Code Playgroud)