2016-01-11 76 views
0

我是新的django框架,我想处理django应用程序的全局事件,如onStart和asp.net的onStop。反正有这样做,我已经使用下面的代码处理OnStart,但无法处理onStop,请指导我这样做。如何处理django停止事件?

__author__ = 'qasim' 

from django.apps import AppConfig 


class MyAppConfig(AppConfig): 
    name = 'api' 
    verbose_name = "My Application" 

    def ready(self): 
     print("hello-----------------------------------------------------") 
     pass # startup code here 
+0

Django与asp.net完全无关,它不清楚你要问什么。 – Sayse

+0

@Sayse我想在我的django服务器停止时执行代码。 –

+1

看看这里:http://stackoverflow.com/questions/15472075/django-framework-is-there-a-shutdown-event-that-c​​an-be-subscribed-to – SimoV8

回答

3

ASP.NET和django之间的混淆是,前者是一个服务器+框架,后者只是一个框架。

Django应用程序在某些服务器上执行,通常的选择是apache mod_wsgi或uWSGI。

根据您的服务器,可能会停止运行某些内容。

+0

当我从asp.net移到django时,我也遇到了全局变量的问题。在asp.net中,我曾经拥有全局静态变量来存放通用的对象。我确信这个对象对所有用户和所有请求都是一样的。在django + apache mod_wsgi中启动了应用程序的多个实例,并且每个请求最终都会在这些实例中的一个随机集合中使用全局变量。 – nima

+1

什么使全局变量?如果您的站点在单个服务器上运行,则可以使用具有多个线程的单个服务器进程来处理请求。线程共享全局变量。我不喜欢这种方法,因为:(a)它不能缩放和(b)暴露给同步问题。如果数据类型不是原子的,你可能会得到最奇怪的错误。如果您运行多个进程,则可以使用共享内存。但与全局相同的缺点。如果扩展到多个服务器,则必须在(易失性)存储后端中隔离共享状态。 –

+0

是的,我完全同意。我刚才提到这是为了分享我的经验,因为我认为它与OP想要做的事情类似,并且它们都是坏主意。 – nima