工单短信用多线程发送
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):
|
for i in Area.objects.filter(type=Area.AREA_TYPE_FIX):
|
||||||
Thread(target=update_count_people, args=(i,), daemon=True).start()
|
Thread(target=update_count_people, args=(i,), daemon=True).start()
|
||||||
|
time.sleep(1)
|
||||||
|
|
||||||
|
|
||||||
@shared_task
|
@shared_task
|
||||||
|
@ -90,5 +91,3 @@ def opl_task(vc_codes: list, opl_id: str):
|
||||||
for i in vchannels:
|
for i in vchannels:
|
||||||
Thread(target=snap_and_analyse, args=(i, algo_codes, opl)).start()
|
Thread(target=snap_and_analyse, args=(i, algo_codes, opl)).start()
|
||||||
time.sleep(10)
|
time.sleep(10)
|
||||||
opl.mtask = None
|
|
||||||
opl.save()
|
|
||||||
|
|
|
@ -134,8 +134,6 @@ def opl_end(ticket: Ticket):
|
||||||
if opl.mtask:
|
if opl.mtask:
|
||||||
# 关闭作业视频监控任务
|
# 关闭作业视频监控任务
|
||||||
close_mtask(opl.mtask.task_id)
|
close_mtask(opl.mtask.task_id)
|
||||||
opl.mtask = None
|
|
||||||
opl.save()
|
|
||||||
operation = opl.operation
|
operation = opl.operation
|
||||||
opls = Opl.objects.filter(operation=operation)
|
opls = Opl.objects.filter(operation=operation)
|
||||||
opls.filter(ticket=None).delete() # 删除无用许可证
|
opls.filter(ticket=None).delete() # 删除无用许可证
|
||||||
|
|
|
@ -106,8 +106,6 @@ class OplViewSet(CustomModelViewSet):
|
||||||
# 防止没变化,手动处理一下
|
# 防止没变化,手动处理一下
|
||||||
mtask.status = 'REVOKED'
|
mtask.status = 'REVOKED'
|
||||||
mtask.save()
|
mtask.save()
|
||||||
obj.mtask = None
|
|
||||||
obj.save()
|
|
||||||
return Response()
|
return Response()
|
||||||
|
|
||||||
|
|
||||||
|
|
|
@ -1,11 +1,18 @@
|
||||||
# Create your tasks here
|
# Create your tasks here
|
||||||
from __future__ import absolute_import, unicode_literals
|
from __future__ import absolute_import, unicode_literals
|
||||||
from random import random, randint
|
from datetime import timedelta
|
||||||
from apps.utils.tasks import CustomTask
|
from apps.utils.tasks import CustomTask
|
||||||
from celery import shared_task
|
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)
|
@shared_task(base=CustomTask)
|
||||||
def show(x=1):
|
def cleanup_dcr():
|
||||||
return 40/int(x)
|
"""清空三十日前的定时任务执行记录
|
||||||
|
|
||||||
|
清空三十日前的定时任务执行记录
|
||||||
|
"""
|
||||||
|
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
|
import importlib
|
||||||
|
from threading import Thread
|
||||||
|
from apps.utils.sms import send_sms
|
||||||
from apps.wf.serializers import TicketSimpleSerializer
|
from apps.wf.serializers import TicketSimpleSerializer
|
||||||
from apps.system.models import Dept, User
|
from apps.system.models import Dept, User
|
||||||
from apps.wf.models import CustomField, State, Ticket, TicketFlow, Transition, Workflow
|
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
|
last_log.intervene_type == Transition.TRANSITION_INTERVENE_TYPE_DELIVER or
|
||||||
ticket.in_add_node):
|
ticket.in_add_node):
|
||||||
# 如果状态变化或是转交加签的情况再发送通知
|
# 如果状态变化或是转交加签的情况再发送通知
|
||||||
from apps.wf.tasks import send_ticket_notice
|
Thread(target=send_ticket_notice_t, args=(ticket,), daemon=True).start()
|
||||||
send_ticket_notice.delay(ticket_id=ticket.id)
|
|
||||||
|
|
||||||
# 如果目标状态是脚本则异步执行
|
# 如果目标状态是脚本则异步执行
|
||||||
if state.participant_type == State.PARTICIPANT_TYPE_ROBOT:
|
if state.participant_type == State.PARTICIPANT_TYPE_ROBOT:
|
||||||
run_task.delay(ticket_id=ticket.id)
|
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