django 自检卡住的原因请教!

python manage.py runserver

System check identified no issues (0 silenced).
December 15, 2022 - 17:03:30
Django version 4.1.3, using settings 'general_server.settings'
Starting development server at http://0.0.0.0:8000/
Quit the server with CTRL-BREAK.  // 成功运行

我随便改 一点代码,自检就卡死了,也没报错
D:\mySite\general_server\easyoffice\views.py changed, reloading.
Watching for file changes with StatReloader
Performing system checks...

望采纳
1、在命令启动的时候把命令对应的进程ID号,以及超时时间,写到一个临时文件中
2、写一个定时服务不停的扫描文件中的进程ID,超时时间,如果发现超时,则杀死
3、这个办法,后面发现对于我的业务是不可行的,原因是命令启动,假死,压根就
没有执行任何代码,没有把PID和超时时间写到临时文件中
4、对于其他在不是在启动的时候假死的情况,是可以用的

# -*- coding: utf-8 -*-
import os
import time
import sys
import datetime
import traceback
import tempfile
import logging
 
COMMAND_PID_ROOT_PATH = os.path.join(tempfile.gettempdir(),"command_pids")
 
def get_log(file_name):
    LOG_DIR = "/var/log/mylog/" #日志目录
 
    if os.name != "posix":
        LOG_DIR =  os.path.split(os.path.abspath(os.path.dirname(__file__)))[0]
 
    if not os.path.exists(LOG_DIR):
        os.mkdir(LOG_DIR)
        
    path = os.path.join(LOG_DIR,file_name)
    logger = logging.getLogger()
    hdlr = logging.FileHandler(path)
    formatter = logging.Formatter('%(levelname)s %(asctime)s %(module)s %(process)d %(thread)d %(message)s')
    hdlr.setFormatter(formatter)
    logger.addHandler(hdlr)
    logger.setLevel(logging.NOTSET)
    return logger
 
logger = get_log("monitor_cmds.log")
 
def monitor():
    logger.info("****staring monitor commands*****")
    expire_minutes = 90 #进程运行过期时间
 
    if not os.path.exists(COMMAND_PID_ROOT_PATH):
        os.mkdir(COMMAND_PID_ROOT_PATH)
 
    datas = os.listdir(COMMAND_PID_ROOT_PATH)
    pid_infos = []
    for f in datas:
        file_path = os.path.join(COMMAND_PID_ROOT_PATH,f)
        if os.path.isfile(file_path):
            fid = file(file_path,"r")
            fdata = fid.read() #文件中内容格式为{pid}|{start_time}
            fid.close()
            d = fdata.split("|")
            d.append(file_path)
            pid_infos.append(d) 
            
    dt_now = datetime.datetime.now()
            
    for pid,start_time,file_path in pid_infos:
        start_time_d = datetime.datetime.strptime(start_time,"%Y-%m-%d %H:%M:%S")
        end_time  = start_time_d + datetime.timedelta(minutes = expire_minutes)
        
        if end_time <= dt_now: #超时了
            kill_cmd = "kill -9 %s"%pid
            if os.system(kill_cmd) == 0:
                logger.info(
                    "success kill pid info pid='%s',start_time='%s',file_path='%s'"%(
                         pid,start_time,file_path,
                        )
                )
            else:
                logger.info(
                    "fail kill pid info pid='%s',start_time='%s',file_path='%s'"%(
                         pid,start_time,file_path,
                        )
                )
 
    logger.info("****ending monitor commands*****")
 
if __name__ == "__main__":
    monitor()

开发服务器可能未正确启动,无法为应用提供服务。

1、代码中可能存在导致服务器无法正常运行的错误。

2、服务器可能陷入循环或等待某些外部事件发生。

3、服务器可能已耗尽资源(如内存或CPU),无法继续。

4、如果遇到此问题,请检查错误日志并进一步调试问题以确定原因。还可以尝试重新启动服务器并再次运行自检,以查看是否解决了问题。

pycharm的设置,每次保存重新程序,微信小程序也是这样,这个功能可以关了。现在你出现这个问题,感觉你电脑配置低了吧