2016-01-11 117 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