feat: 添加check设备离线的脚本

This commit is contained in:
caoqianming 2024-04-16 13:22:45 +08:00
parent 35387a8333
commit 7b1eea0e20
1 changed files with 40 additions and 0 deletions

View File

@ -0,0 +1,40 @@
import os
import sys
import django
import logging
from django.conf import settings
from django.core.cache import cache
from django.utils import timezone
import time
CUR_DIR = os.path.dirname(os.path.abspath(__file__))
BASE_DIR = os.path.dirname(CUR_DIR)
sys.path.insert(0, BASE_DIR)
os.environ.setdefault("DJANGO_SETTINGS_MODULE", "server.settings")
django.setup()
from apps.em.models import Equipment, RuningState
def run():
while True:
now = timezone.now()
equips = Equipment.objects.all()
for equip in equips:
is_online = 0
cache_key = f"equipment_{equip.id}"
cache_value = cache.get(cache_key, None)
if cache_value:
last_timex = cache_value.get("running_state_timex", None)
if last_timex and (now - last_timex).total_seconds() <= 20:
is_online = 1
if is_online == 0:
equip.is_online = 0
equip.running_state = RuningState.UNKNOWN
equip.save(update_fields=["is_online", "running_state"])
time.sleep(5)
if __name__ == "__main__":
run()