我想知道是否有办法在django视图中只实例化一次守护进程线程(有点像单例方法)并管理它(随时停止/启动)
在我的djangoweb应用程序中,我创建了一个管理页面,其中所有设备(传感器)都显示一个复选框。该复选框基本上只是更新数据库,将“isLogging”字段设置为true或false
views.py
def devices(request):
assert isinstance(request, HttpRequest)
devices = TDevices.objects.all()
if request.method == "POST":
for device in devices:
if "device_" + str(device.ixDevice) in request.POST:
device.bIsLogging = True
device.save()
else:
device.bIsLogging = False
device.save()
ping_sensor() #thread target function
return render(request, 'devices.html' , context_instance = RequestContext(request, { 'title':'Device Management', 'devices': TDevices.objects.all()}))
当我的线程启动时,我希望它在后台连续运行,每隔5分钟查询一次数据库,检查哪些设备已启用,然后ping该设备以获取数据,而用户可以去做其他事情。你知道吗
thread target function
def ping_sensor():
#query db for enabled devices
for device in TDevices.objects.all():
if device.bIsLogging:
print "ping : " + device.deviceName
我正在努力解决的问题是,如何只创建一次线程并管理它(随时停止/启动它),因为我现在的设置方式总是在调用视图时创建新线程
目前没有回答
相关问题 更多 >
编程相关推荐