django_apscheduler配置
时间: 2023-07-29 16:11:23 浏览: 114
django配置
在 Django 中使用 apscheduler 可以轻松地实现定时任务的调度。下面是配置步骤:
1. 安装 apscheduler:
```python
pip install apscheduler
```
2. 在 Django settings.py 中添加 apscheduler 配置:
```python
# Apscheduler settings
SCHEDULER_CONFIG = {
'apscheduler.jobstores.default': {
'type': 'sqlalchemy',
'url': 'sqlite:///jobs.sqlite'
},
'apscheduler.executors.default': {
'class': 'apscheduler.executors.pool:ThreadPoolExecutor',
'max_workers': '20'
},
'apscheduler.job_defaults.coalesce': 'false',
'apscheduler.job_defaults.max_instances': '3',
'apscheduler.timezone': 'Asia/Shanghai'
}
```
这里使用了 sqlite 作为 apscheduler 的 job 存储方式,并且设置了最大工作线程数为 20 个,任务不合并,最多同时运行 3 个,时区设置为 Asia/Shanghai。
3. 在 Django 的 app 中定义一个定时任务:
```python
from apscheduler.schedulers.background import BackgroundScheduler
scheduler = BackgroundScheduler()
@scheduler.scheduled_job(trigger='interval', seconds=5)
def test_job():
print('Testing job...')
```
这里定义了一个每 5 秒钟执行一次的测试任务。
4. 在 Django 的 app 中启动 scheduler:
```python
from django.apps import AppConfig
class MyAppConfig(AppConfig):
default_auto_field = 'django.db.models.BigAutoField'
name = 'myapp'
def ready(self):
from . import scheduler
scheduler.start()
```
在这里启动了定义在 step 3 中的定时任务。
5. 在 Django 项目中加载 apscheduler 配置:
```python
from apscheduler.schedulers.background import BackgroundScheduler
from django.conf import settings
scheduler = BackgroundScheduler(settings.SCHEDULER_CONFIG)
```
这里加载了 step 2 中的 apscheduler 配置。
以上就是 Django 中使用 apscheduler 的配置方法。
阅读全文