django时间检查数据库

时间:2016-08-02 07:13:04

标签: python django postgresql python-multithreading

我正在尝试创建一个线程函数,允许我检查数据库字段,以查看time.now()是否大于数据库中记录的那个(postgresql);问题是我调用它的view.py被这个线程阻止,这是我的实际代码:

PD:expire_pet是一个文本字段,然后我将其转换为日期时间。

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)

1 个答案:

答案 0 :(得分:0)

它有效,问题是我一直在错误的位置调用运行,谢谢