我使用Django 1.3设置变量在我settings.py
与mod_wsgi的</p> <p>改变从settings.py
DISABLE_SYSTEM = False
DISABLE_USER_INTERFACE = False
MIDDLEWARE_CLASSES = [
'django.middleware.common.CommonMiddleware',
'django.contrib.sessions.middleware.SessionMiddleware',
'django.middleware.locale.LocaleMiddleware',
'django.contrib.auth.middleware.AuthenticationMiddleware',
'django.contrib.sessions.middleware.SessionMiddleware',
'django.contrib.messages.middleware.MessageMiddleware',
]
if DISABLE_SYSTEM:
MIDDLEWARE_CLASSES.insert(0, 'SomeMiddleware')
if DISABLE_USER_INTERFACE:
MIDDLEWARE_CLASSES.append('SomeOtherMiddleware')
当我设置DISABLE_SYSTEM
到True
,SomeMiddleware
的process_request
函数返回HttpResponse
一条警告消息而下面的Middeware不会运行。这给了我一种系统停机维护
DISABLE_USER_INTERFACE
过滤器request
任何用户称为受阻取景功能,同时admin
URL和管理功能正常运行。
到目前为止,我用这种方法来维护不同的类型,我只是简单地将它从文件中改为,然后触摸wsgi重新加载python模块。但现在,我需要使用一种预定的例程来停止基于用户的请求,并对后台进行一些维护,并从管理员那里进行一些维护。
在这一点上,我系统(但不是用户)需要设置DISABLE_USER_INTERFACE
到True
从settings.py
并开始维护。但我无法找到porper的方式来做到这一点或更好的方式来处理这不是从settings.py
而是在别的地方。
settings py
中的行比变化DISABLE_USER_INTERFACE
是因为我需要每天使用这个函数一次,并且对于每个请求使用这两个中间件对我来说似乎不合逻辑。所以在我目前的模型中,他们只在需要运行时运行。
任何建议,将不胜感激。
更新:我想要做的是在每天的19:00至19:30期间禁用用户界面。我不确定如何制作中间件级别检查:
if 19:00<now()<19:30:
stop system
对于每个请求。我需要更高效的方法来避免不必要的过程。或者中间件是那种作品的正确选择?
我想要的是在19.00到19.30之间关闭系统,我想写一个中间件来检查每个请求的时间,如果它是维护时间,但是运行一个'if 19.00
FallenAngel
2012-01-05 11:59:35
“但运行一个如果19.00 <现在()<19.30:停止系统控制每个请求似乎是不必要的”。实际上,开销是无法估量的。但是,这就是为什么我建议在已知位置创建文件的原因。 cron可以根据您的时间表创建和删除此文件。 – 2012-01-05 12:47:49
我想你是对的,这是更好的(: – FallenAngel 2012-01-05 14:08:13