Django項目定期自動清除過期session的2種方法實例
非自動方法
python manage.py clearsessions
第一種方法通用方法(利用APScheduler定時清除)
安裝插件
pip install apscheduler
添加定時任務(wù)
找到項目同名的app文件夾中的wsgi.py
修改wsgi.py
添加如下代碼在wsgi.py
import os from apscheduler.schedulers.background import BackgroundScheduler scheduler = BackgroundScheduler() # 定時任務(wù), 清空session數(shù)據(jù)庫,這個庫不清的話,會不停的增大 #days為int值,幾天一清理 #start_date開始日期 @scheduler.scheduled_job(trigger='interval', days=1,start_date='2022-05-02 20:08:00', id='clear_session') def clear_session_job(): print('clear session data base') # 命令行執(zhí)行python manage.py clearsessions,可以清除已經(jīng)失效的session os.system('python manage.py clearsessions') scheduler.start()
運行效果
運行前數(shù)據(jù)庫中session:
運行:
clear session data base !!
注意:警告不屬于報錯?。?/p>
運行后數(shù)據(jù)庫中session:
顯而易見,所有過期的sessions全部被清理了
完成
以后運行django項目時候每天都會自動在規(guī)定時間里面清除過期的sessions
利用寶塔面板(baota)的計劃面板(shell腳本)
由于我的項目是利用寶塔搭建在服務(wù)器上的,所以我也使用了很多寶塔的自動化腳本進行運行和維護我的服務(wù)器
進入shell編輯面
計劃任務(wù) -> 任務(wù)類型(shell腳本)-> 任務(wù)名稱(自行命名)-> 執(zhí)行周期(自行設(shè)置)
編寫shell腳本
#!/bin/sh #cd manage.py所在的項目文件夾 cd /www/wwwroot/vedio python3 manage.py clearsessions
執(zhí)行腳本
運行效果
運行前數(shù)據(jù)庫中session:十六條session數(shù)據(jù),六條過期session
執(zhí)行日志:
運行后數(shù)據(jù)庫中session:十條數(shù)據(jù),過期的已經(jīng)被刪掉了
完成
以后運行django項目時候每天都會自動在規(guī)定時間里面清除過期的sessions
總結(jié)
到此這篇關(guān)于Django項目定期自動清除過期session的文章就介紹到這了,更多相關(guān)Django定期自動清除過期session內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
Python+ChatGPT實戰(zhàn)之進行游戲運營數(shù)據(jù)分析
最近ChatGPT蠻火的,今天試著讓ta用Python語言寫了一篇數(shù)據(jù)分析實戰(zhàn)案例。文中的示例代碼講解詳細,感興趣的小伙伴可以跟隨小編一起學(xué)習(xí)一下2023-02-02Python真題案例之小學(xué)算術(shù)?階乘精確值?孿生素數(shù)?6174問題詳解
這篇文章主要介紹了python實操案例練習(xí),本文給大家分享的案例中主要任務(wù)有小學(xué)生算術(shù)、階乘的精確值、孿生素數(shù)、6174問題,需要的小伙伴可以參考一下2022-03-03