1
guoqiao 2014-07-15 17:05:37 +08:00 via iPhone 1
定时任务直接用cron做最方便
|
2
no13bus OP 我在python manage.py shell里面手动执行的时候 是可以执行任务队列的,但是celery -A proj beat开启定时任务就是说我没有注册任务
|
3
no13bus OP @guoqiao 你说的是celery里面的cron吗?还是linux自己的cron?他能借助dj的orm操作数据库吗?
|
5
messense 2014-07-15 17:14:56 +08:00 1
用 Linux 自带的 crontab 比 Celery 的要精准得多吧。
|
6
no13bus OP @messense crontab不知道怎么和django交互。就用celery得了。现在就是发愁为什么说我注册不了那个tasks。以及django怎么和celery交互数据库。
|
7
20150517 2014-07-15 17:21:58 +08:00 1
正常,就是因为你没用celery版django才出这个的错误的
|
8
qdvictory 2014-07-15 17:24:32 +08:00 1
|
9
messense 2014-07-15 17:27:03 +08:00
@no13bus 写个 management command 提交任务给 celery 就行了。交互数据库和直接在 Django 中调用没什么差别吧。
按照官方文档,设置好 DJANGO_SETTINGS_MODULE 应该就可以了吧。 https://github.com/celery/celery/blob/3.1/examples/django/proj/celery.py |
10
aggron 2014-07-15 17:36:27 +08:00 via Android 1
CELERYBEAT_SCHEDULE放在tasks.py中,
app.conf.update( CELERYBEAT_SCHEDULE=... ) 没用过django-celery |
11
no13bus OP @messense
@qdvictory @20150517 你说的是django-celery这个插件吗?我在python manage.py shell里面手动执行的时候 是可以执行任务队列的,但是celery -A proj beat开启定时任务就是说我没有注册任务。我基本上就是按照https://github.com/celery/celery/blob/3.1/examples/django/proj/celery.py来配置的。只是改了app = Celery('btcproject',broker='redis://localhost:6379/0',backend='redis://localhost') 这个是我的settings https://gist.github.com/no13bus/7500b6bfe7a4d9e1bbc3 是settings的问题? |
12
ernest 2014-07-15 18:57:32 +08:00 via Android
|
13
wibile 2014-07-15 19:45:39 +08:00 1
应该不是setting问题,运行celery -A proj worker -l info看注册的tasks,是否和你beat里的一致,注意是个字符串,不同运行目录会注册不同的tasks名称,如:tasks.add或者xxx.tasks.add。
|
15
no13bus OP |
16
no13bus OP |
17
messense 2014-07-16 09:50:13 +08:00
@no13bus crontab 自己就是个定时任务嘛,而且系统级的精确度上应该也更高些,crontab 提交任务给 celery,celery 只要去执行就行了不用考虑定时的问题。
|
18
guoqiao 2014-07-16 14:06:02 +08:00
|