Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/290.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
在Django init上启动简单的python线程_Python_Django_Python 2.7 - Fatal编程技术网

在Django init上启动简单的python线程

在Django init上启动简单的python线程,python,django,python-2.7,Python,Django,Python 2.7,我刚刚开始与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:

我刚刚开始与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

尝试从
wsgi.py
文件的末尾调用init代码。它将在服务器启动时执行一次。

尝试从
wsgi.py
文件的末尾调用您的初始化代码。它将在服务器启动时执行一次。

为什么要这样做?在web服务环境中处理线程通常是错误的。您的实际用例是什么?此外,如果你真的希望我们帮助你,你必须比“我有很多错误”更具体。@DanielRoseman:我正在尝试构建一个进程间通信应用程序。。那里的水流会像这样。。。html/js-->django-->python将在POSIX IPC队列中发布-->C应用程序读取n进程-->C应用程序将在另一个IPC通道中发布消息(此发布可能随时发生)…因此,要监视,我需要在django应用程序中设置一个线程(就像一个后台过程。真的吗?你有没有想过如何将更新返回到前端的用户?这似乎设计过度,听起来消息队列将是一个更简单、更合适的解决方案。@DanielRoseman:“我有很多错误”在这一部分中,我有一些简单的页面重定向问题。但由于线程是我的首要任务,我将首先解决这个问题,然后尝试理解重定向部分。@DanielRoseman:是的,我们只使用消息队列。mesage队列发布的对象将是一个结构,我们在其中反编译结构并返回JSON并处理重定向ST为什么要这样做?在web服务环境中乱搞线程通常是错误的。您的实际用例是什么?此外,如果您真的需要我们的帮助,您必须比“我有很多错误”更具体@DanielRoseman:我正在尝试构建一个进程间通信应用程序..流程如下…html/js-->django-->python将在POSIX IPC队列中发布-->C应用程序读取n进程-->C应用程序将在另一个IPC通道中发布消息(此发布可能随时发生)…因此,为了进行监控,我需要在django应用程序中设置一个线程(就像后台进程一样。真的吗?您是否考虑过如何将更新返回到前端的用户?这似乎过于复杂,听起来消息队列将是一个更简单、更合适的解决方案。@DanielRoseman:“我有很多错误”在这一部分中,我有一些简单的页面重定向问题。但由于线程是我的首要任务,我将首先解决这个问题,然后尝试理解重定向部分。@DanielRoseman:是的,我们只使用消息队列。mesage队列发布的对象将是一个结构,我们在其中反编译结构并返回JSON并处理重定向stfrom whicn类wsgi.py被调用..它会在2小时前从settings.py–Ragav调用吗?whicn类wsgi.py被调用..它会在2小时前从settings.py–Ragav调用吗