1

djangoを使い始めたばかりです。私の開発環境では、以下を使用してdjangoサーバーを起動するために使用します。

python manage.py runserver 0.0.0.0:8000

そして、私のWebアプリケーションは期待どおりに機能していますが、それでも多くのエラーが発生します...しかし、今のところ、サーバーinitでバックグラウンドスレッドを実行したいので、ガイダンスが必要です。

これが私が追加しようとしているスレッドコードです:

def synchronized(L):
    def lock_around(f):
        def locked(*a, **k):
            with L:
                return f(*a, **k)
        locked.__name__ = f.__name__
        locked.__doc__ = f.__doc__
        return locked
    return lock_around


class ProcessMsgQueue:

    def __init__(self):
        try:
            print "jaojdajdoaj"
            self.dataCounter = 0
            self.errorCounter = 0
            self.setupQueueTable()
            self.wrapperFuns = structureWrapper.WrapperClass()
            msgStruct = MsgStruct()
            self.VerifyMsgQueue()
        except:
            raise

    def setupQueueTable(self):
        self.hash_object = QueueHandler("queue_details")
        self.hash_object.EnableListener()
        self.hash_object.createNewHashRef()
        self.hash_object.create("dataMsgQueue")
        self.hash_object.create("errorMsgQueue")

    @synchronized(lock)     
    def pendMessage(self):
        print "pendMsg"
        try:
            res_mq = posix_ipc.MessageQueue(RESPONSE_QUEUE_NAME)
            res_msg = None
            res_msg,t_size = res_mq.receive()
            #print res_msg.encode('hex')
            return res_msg
        except Exception as e:
            print e
            raise
        finally:
            res_mq.close()

    def VerifyMsgQueue(self):
        while(self.hash_object.Queuelisten):
            try:
                posixQueueMessage=self.pendMessage()
                if not posixQueueMessage == None:
                    msgStruct = None
                    msgStruct = MsgStruct()
                    self.wrapperFuns.memCopy(posixQueueMessage,msgStruct)
                    if(msgStruct.msgType == palMsgType["DOOR_OPEN_INSERVICE_MSG"]):
                        print "Added Error to hastable"
                        self.hash_object.set("errorMsgQueue",self.errorCounter,msgStruct.msgBuf)
                    else:
                        print "Added Data to hastable"
                        self.hash_object.set("dataMsgQueue",msgStruct.msgType,msgStruct.msgBuf)
                    posixQueueMessage=None
            except:
                raise
4

1 に答える 1

5

wsgi.pyファイルの終わりから初期化コードを呼び出してみてください。サーバーの起動時に1回実行されます。

于 2013-01-31T16:47:39.253 に答える