django 异步执行定时任务APScheduler

django 异步执行定时任务APScheduler

pip install apscheduler==2.1.2

亲测支持django2.0,最高版本的没试过

异步执行实例

from apscheduler.scheduler import Scheduler

def task_Fun():
   '''
   这里写定时任务
   '''

   a = ReceivedServer()  # 
   a.get()  # 调用实例方法  每隔1s执行一次   


sched = Scheduler()   # 


@sched.interval_schedule(seconds=1)   # seconds  任务执行间隔时间  以s做单位
def my_task1():
   task_Fun() 

sched.start()

扩展知识

BlockingScheduler与BackgroundScheduler区别
APScheduler中有很多种不同类型的调度器,BlockingScheduler与BackgroundScheduler是其中最常用的两种调度器。那他们之间有什么区别呢? 简单来说,区别主要在于BlockingScheduler会阻塞主线程的运行,而BackgroundScheduler不会阻塞。所以,我们在不同的情况下,选择不同的调度器:

BlockingScheduler: 调用start函数后会阻塞当前线程。当调度器是你应用中唯一要运行的东西时(如上例)使用。
BackgroundScheduler: 调用start后主线程不会阻塞。当你不运行任何其他框架时使用,并希望调度器在你应用的后台执行

https://www.jianshu.com/p/4f5305e220f0
https://www.cnblogs.com/luxiaojun/p/6567132.html
https://blog.csdn.net/ybdesire/article/details/82228840

多线程

import threading
q = QuoteProtocol(self)
    t = threading.Thread(target=q)
    t.start()

django中使用多线程对整个项目不太友好,慎用!!!

你可能感兴趣的:(笔记)