2016-08-02 49 views
0

我想創建一個線程函數,讓我檢查數據庫字段,以查看time.now()是否大於數據庫中記錄的(postgresql);問題是我調用this的view.py被這個線程阻塞,這是我的實際代碼:Django時間檢查器數據庫

PD:expire_pet是一個文本字段,然後我將它轉換爲datetime。

import socket 
import struct 
from time import * 
from datetime import datetime 
from models import Zone 
from multiprocessing import pool 
import threading 

class ControlHora(threading.Thread): 

     def __init__(self,zone_id): 
       threading.Thread.__init__(self) 
       self.zone_id = zone_id 

     def run(self): 

       while(True): 

         zone_pet = Zone.objects.filter(id = self.zone_id) 

         for i in zone_pet: 
           if i.pet_state == True: 
             hour = datetime.datetime.strptime(i.expire_pet, '%I:%M') 
             if hour <= datetime.datetime.now(): 
               Zone.objects.filter(id = self.zone_id).update(vitrasa_pet = False) 
               Zone.objects.filter(id = self.zone_id).update(esycsa_pet = False) 
               Zone.objects.filter(id = self.zone_id).update(pet_state = False) 
               Zone.objects.filter(id = self.zone_id).update(expire_pet='') 
           sleep(5) 
+0

超時是在客戶端顯示,如果我調用線程 – Datex2

回答

0

它的工作原理,問題是,我一直在呼籲在錯誤的地方跑,感謝