Django 如何使用 celery-beat 启动任务
在本文中,我们将介绍如何使用 Django 和 celery-beat 来启动异步任务。
阅读更多:Django 教程
什么是 Django 和 Celery-Beat?
Django 是一个采用 Python 编写的开源 Web 开发框架,它提供了丰富的功能和工具,使得开发 Web 应用变得简单和高效。Celery-Beat 是 Celery 的一个插件,它提供了任务调度功能,可以定期执行任务。结合 Django 和 Celery-Beat,我们可以轻松地实现异步任务的定时调度。
安装和配置
首先,我们需要安装 Django 和 Celery-Beat。可以通过以下命令在终端中安装它们:
安装完成后,我们需要在 Django 项目的 settings.py 文件中进行相关配置。在 INSTALLED_APPS 列表中添加 ‘django_celery_beat’,并设置 Celery 的相关配置,如下所示:
在配置中,我们使用了 Redis 作为我们的消息代理和结果后端。你可以根据你的需求选择其他的代理和后端。
创建任务
接下来,我们需要定义并创建我们的任务。首先,在 Django 项目的某个应用中创建一个名为 tasks.py 的文件。然后,我们可以在该文件中创建我们的任务。例如,我们创建一个名为 send_notification
的任务,用于发送通知邮件给用户。
在上面的示例中,我们使用了 shared_task
装饰器来创建一个共享任务。这意味着该任务可以在不同的应用中被调用。
配置任务调度
接下来,我们需要配置任务调度。在 Django 项目的 settings.py 文件中,我们可以使用 CELERY_BEAT_SCHEDULE
设置任务的调度规则。例如,我们可以在每天早上 9 点发送通知邮件。需要注意的是,Celery-Beat 使用 UTC 时间,所以我们需要使用 UTC 时间进行配置。
在上面的示例中,我们定义了一个名为 ‘send_notification’ 的任务调度。它指定了任务的名称、要运行的任务、调度规则和传递给任务的参数。
启动 Celery-Beat
现在,我们已经完成了任务的定义和调度配置。接下来,我们需要启动 Celery-Beat 来定时运行我们的任务。
可以在终端中使用以下命令来启动 Celery-Beat:
其中,your_project_name
是你的 Django 项目的名称。
执行任务
最后,我们需要确保 Celery worker 正在运行,以便执行我们的任务。
可以在终端中使用以下命令来启动 Celery worker:
确保在运行这个命令前,你已经在终端切换到了你的 Django 项目的目录。
总结
本文介绍了如何使用 Django 和 Celery-Beat 启动任务。我们首先安装和配置了 Django 和 Celery-Beat。然后,我们创建了一个发送通知邮件的任务,并配置了任务的调度规则。最后,我们启动了 Celery-Beat 来定时运行任务,并确保 Celery worker 正在运行以执行任务。通过这些步骤,我们可以轻松地实现异步任务的定时调度。