feat: 添加check设备离线的脚本
This commit is contained in:
parent
35387a8333
commit
7b1eea0e20
|
@ -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()
|
Loading…
Reference in New Issue