django使用django_celery_beat
时间: 2023-09-22 12:07:37 浏览: 332
django celery celery beat项目
Django_celery_beat是一个django应用程序,它允许您使用celery定期运行周期性任务。这些周期性任务可以是一次性的或循环的,你可以设置它们在指定的时间间隔内自动运行,也可以设置它们在特定的时间运行。
要使用django_celery_beat,请按照以下步骤操作:
1. 安装django_celery_beat:
```
pip install django_celery_beat
```
2. 在settings.py中添加以下代码:
```
INSTALLED_APPS = [
# ...
'django_celery_beat',
]
CELERY_BEAT_SCHEDULER = 'django_celery_beat.schedulers:DatabaseScheduler'
```
3. 在项目的urls.py文件中添加以下代码:
```
from django.urls import path
from django_celery_beat.views import (
PeriodicTaskListView, PeriodicTaskCreateView,
PeriodicTaskUpdateView, PeriodicTaskDeleteView,
PeriodicTaskDetailView,
)
urlpatterns = [
# ...
path('celery/periodic-tasks/', PeriodicTaskListView.as_view(),
name='periodic_task_list'),
path('celery/periodic-task/add/', PeriodicTaskCreateView.as_view(),
name='periodic_task_create'),
path('celery/periodic-task/<int:pk>/', PeriodicTaskDetailView.as_view(),
name='periodic_task_detail'),
path('celery/periodic-task/<int:pk>/update/', PeriodicTaskUpdateView.as_view(),
name='periodic_task_update'),
path('celery/periodic-task/<int:pk>/delete/', PeriodicTaskDeleteView.as_view(),
name='periodic_task_delete'),
]
```
4. 在celery.py文件中添加以下代码:
```
from celery import Celery
from django.conf import settings
app = Celery('my_project')
app.config_from_object('django.conf:settings', namespace='CELERY')
app.autodiscover_tasks(lambda: settings.INSTALLED_APPS)
```
5. 在tasks.py文件中创建您的任务,例如:
```
from celery import shared_task
@shared_task
def my_task():
# Do something here
```
6. 创建周期性任务,您可以使用Django admin或创建它们的视图。
现在,您已经可以在django中使用celery定期运行周期性任务了。
阅读全文