Django - 定时任务框架【django-apscheduler】基本使用详解
import logging
from django_apscheduler.jobstores import DjangoJobStore, register_job
from django_apscheduler.models import DjangoJob
# 配置日志输出
logging.basicConfig(level=logging.INFO, format='%(asctime)s %(levelname)s %(message)s')
# 定义一个要执行的任务函数
def my_job():
logging.info('执行定时任务...')
# 注册定时任务
def register_my_job():
# 使用装饰器注册任务
@register_job(jobstore='django', id='my_job_id', next_run_time=datetime.datetime.now())
def my_job_decorated():
logging.info('执行装饰器定时任务...')
# 或者直接调用register_job函数注册
job = DjangoJob(
jobstore='django',
id='my_job_id_direct',
func='example.views:my_job_decorated', # 指定任务函数的路径
args=(),
kwargs={},
next_run_time=datetime.datetime.now()
)
job.save()
# 启动定时任务调度器
def start_scheduler():
from apscheduler.schedulers.blocking import BlockingScheduler
scheduler = BlockingScheduler(jobstores={'django': DjangoJobStore()})
scheduler.start()
# 执行上述操作
register_my_job()
start_scheduler()
这段代码演示了如何在Django中使用django-apscheduler
库来注册和启动定时任务。首先配置了日志输出,然后定义了一个要执行的任务函数my_job
。接着使用装饰器register_job
注册任务,或者直接创建一个DjangoJob
实例来注册任务。最后,启动了定时任务调度器。这个例子简洁地展示了如何在Django项目中集成并使用django-apscheduler
库。
评论已关闭