Skip to content

Instantly share code, notes, and snippets.

@zengxs
Created November 10, 2021 12:30
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save zengxs/f3d0d1a894587af929fed835d4d78bbd to your computer and use it in GitHub Desktop.
Save zengxs/f3d0d1a894587af929fed835d4d78bbd to your computer and use it in GitHub Desktop.
import logging
import pytz
from apscheduler.executors.pool import ThreadPoolExecutor
from apscheduler.jobstores.redis import RedisJobStore
from apscheduler.schedulers.background import BackgroundScheduler
from django.utils.deprecation import MiddlewareMixin
from django.utils.timezone import get_current_timezone_name
logger = logging.getLogger(__name__)
def print_hello():
print("hello world")
class APSchedulerMiddleware(MiddlewareMixin):
def __init__(self, get_response):
super().__init__(get_response)
self.scheduler = BackgroundScheduler(
jobstores={'default': RedisJobStore(host='localhost', db=0)},
executors={'default': ThreadPoolExecutor(max_workers=20)},
timezone=pytz.timezone(get_current_timezone_name()),
)
self.scheduler.start()
# Django 启动时创建一个定时任务
self.scheduler.add_job(print_hello, 'interval', seconds=15, id='print_hello')
def process_request(self, request):
setattr(request, 'scheduler', self.scheduler)
@watsonhaw5566
Copy link

nice 学习

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment