在Django init上启动简单的python线程
我刚刚开始与django合作。在我的开发环境中,我使用以下命令启动django服务器:在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:
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调用吗