# @Author : Rocky # @File : tasks.py # @Time : 2024/3/12 14:23 import django import requests from Ansjer.Config.gatewaySensorConfig import DEVICE_TYPE, SMART_SOCKET_TOPIC, EVENT_TYPE from Service.CommonService import CommonService django.setup() import time from Ansjer.celery import app from Ansjer.config import LOGGER, CONFIG_INFO, DETECT_PUSH_DOMAINS from Model.models import Device_User # ###################测试函数 @app.task def hello(): device_user_qs = Device_User.objects.filter(username='13138137872').values('NickName') nickname = device_user_qs[0]['NickName'] info = 'celery测试日志, CONFIG_INFO:{}, nickname:{}'.format(CONFIG_INFO, nickname) LOGGER.info(info) @app.task def test(arg): time.sleep(10) print(arg) @app.task def add(x, y): print(x + y) # ################### @app.task def loocam_smart_scene(device_type, event_type, serial_number, scene_id=0): """ loocam智能场景任务 @param device_type: 设备类型 @param event_type: 事件类型 @param serial_number: 序列号 @param scene_id: 场景id @return: """ if device_type == DEVICE_TYPE['socket']: topic_name = SMART_SOCKET_TOPIC.format(serial_number) status = 1 if event_type == EVENT_TYPE['socket_power_on'] else 0 msg = { 'type': 1, 'data': {'deviceSwitch': status} } CommonService.req_publish_mqtt_msg(serial_number, topic_name, msg) # 没有设备任务时,最后一个任务上报场景日志 if scene_id: data = { 'sceneId': scene_id, 'status': 1 } url = DETECT_PUSH_DOMAINS + 'gatewayService/sceneLogPush' requests.post(url=url, data=data, timeout=8)