工单短信用多线程发送
This commit is contained in:
parent
7a3c46c8f1
commit
1042724b70
|
@ -63,6 +63,7 @@ def cal_area_count():
|
|||
"""
|
||||
for i in Area.objects.filter(type=Area.AREA_TYPE_FIX):
|
||||
Thread(target=update_count_people, args=(i,), daemon=True).start()
|
||||
time.sleep(1)
|
||||
|
||||
|
||||
@shared_task
|
||||
|
@ -90,5 +91,3 @@ def opl_task(vc_codes: list, opl_id: str):
|
|||
for i in vchannels:
|
||||
Thread(target=snap_and_analyse, args=(i, algo_codes, opl)).start()
|
||||
time.sleep(10)
|
||||
opl.mtask = None
|
||||
opl.save()
|
||||
|
|
|
@ -134,8 +134,6 @@ def opl_end(ticket: Ticket):
|
|||
if opl.mtask:
|
||||
# 关闭作业视频监控任务
|
||||
close_mtask(opl.mtask.task_id)
|
||||
opl.mtask = None
|
||||
opl.save()
|
||||
operation = opl.operation
|
||||
opls = Opl.objects.filter(operation=operation)
|
||||
opls.filter(ticket=None).delete() # 删除无用许可证
|
||||
|
|
|
@ -106,8 +106,6 @@ class OplViewSet(CustomModelViewSet):
|
|||
# 防止没变化,手动处理一下
|
||||
mtask.status = 'REVOKED'
|
||||
mtask.save()
|
||||
obj.mtask = None
|
||||
obj.save()
|
||||
return Response()
|
||||
|
||||
|
||||
|
|
|
@ -1,11 +1,18 @@
|
|||
# Create your tasks here
|
||||
from __future__ import absolute_import, unicode_literals
|
||||
from random import random, randint
|
||||
from datetime import timedelta
|
||||
from apps.utils.tasks import CustomTask
|
||||
from celery import shared_task
|
||||
from django.core.mail import send_mail
|
||||
from django_celery_results.models import TaskResult
|
||||
from django.utils import timezone
|
||||
|
||||
|
||||
@shared_task(base=CustomTask)
|
||||
def show(x=1):
|
||||
return 40/int(x)
|
||||
def cleanup_dcr():
|
||||
"""清空三十日前的定时任务执行记录
|
||||
|
||||
清空三十日前的定时任务执行记录
|
||||
"""
|
||||
now = timezone.now()
|
||||
days30_ago = now - timedelta(days=30)
|
||||
TaskResult.objects.filter(periodic_task_name__isnull=False, date_done__lte=days30_ago).delete()
|
||||
|
|
|
@ -1,4 +1,6 @@
|
|||
import importlib
|
||||
from threading import Thread
|
||||
from apps.utils.sms import send_sms
|
||||
from apps.wf.serializers import TicketSimpleSerializer
|
||||
from apps.system.models import Dept, User
|
||||
from apps.wf.models import CustomField, State, Ticket, TicketFlow, Transition, Workflow
|
||||
|
@ -411,9 +413,25 @@ class WfService(object):
|
|||
last_log.intervene_type == Transition.TRANSITION_INTERVENE_TYPE_DELIVER or
|
||||
ticket.in_add_node):
|
||||
# 如果状态变化或是转交加签的情况再发送通知
|
||||
from apps.wf.tasks import send_ticket_notice
|
||||
send_ticket_notice.delay(ticket_id=ticket.id)
|
||||
Thread(target=send_ticket_notice_t, args=(ticket,), daemon=True).start()
|
||||
|
||||
# 如果目标状态是脚本则异步执行
|
||||
if state.participant_type == State.PARTICIPANT_TYPE_ROBOT:
|
||||
run_task.delay(ticket_id=ticket.id)
|
||||
|
||||
|
||||
def send_ticket_notice_t(ticket: Ticket):
|
||||
"""
|
||||
发送通知
|
||||
"""
|
||||
params = {'workflow': ticket.workflow.name, 'state': ticket.state.name}
|
||||
if ticket.participant_type == 1:
|
||||
# 发送短信通知
|
||||
pt = User.objects.filter(id=ticket.participant).first()
|
||||
if pt and pt.phone:
|
||||
send_sms(pt.phone, 1002, params)
|
||||
elif ticket.participant_type == 2:
|
||||
pts = User.objects.filter(id__in=ticket.participant)
|
||||
for i in pts:
|
||||
if i.phone:
|
||||
send_sms(i.phone, 1002, params)
|
||||
|
|
Loading…
Reference in New Issue