初始化项目
This commit is contained in:
@@ -0,0 +1,55 @@
|
||||
"""
|
||||
上报 D3I 与 DCM 接口对接结果。
|
||||
|
||||
对应文档接口:10、上报单条工单的操作结果
|
||||
"""
|
||||
import asyncio
|
||||
import json
|
||||
|
||||
from tornado.httpclient import HTTPResponse, HTTPRequest
|
||||
|
||||
import dock
|
||||
from dock.oa import oa_api_request
|
||||
from paste.core.logging import echo_log
|
||||
from paste.util import udict
|
||||
from paste.web import requests
|
||||
|
||||
|
||||
async def after_result_notify_request(response: HTTPResponse, retry_queue: asyncio.Queue[HTTPRequest]):
|
||||
"""
|
||||
上报工单操作结果响应后的处理程序。
|
||||
|
||||
:param response: 响应对象
|
||||
:param retry_queue: 重试队列
|
||||
"""
|
||||
body = response.body.decode()
|
||||
echo_log(body)
|
||||
body_data = json.loads(body)
|
||||
code = udict.get_by_path(body_data, 'code')
|
||||
message = udict.get_by_path(body_data, 'msg')
|
||||
if code == 200:
|
||||
echo_log(f"上报工单操作结果成功.")
|
||||
else:
|
||||
echo_log(f"上报工单操作结果失败:{message}")
|
||||
|
||||
if retry_queue:
|
||||
echo_log(f"上报工单操作结果重试队列中有:{retry_queue.qsize()} 个请求在等待.")
|
||||
|
||||
|
||||
async def push_result_notify(flow_token: str, message: str, return_code: int):
|
||||
"""
|
||||
操作工单完成后,推送处理结果
|
||||
|
||||
:param flow_token:OA调用本项目接口时提供
|
||||
:param message:接口调用返回说明
|
||||
:param return_code:操作类型
|
||||
"""
|
||||
echo_log(f"正在准备推送工单操作结果...")
|
||||
request = await oa_api_request.get_result_notify_request(flow_token, message, return_code)
|
||||
push_queue = asyncio.Queue()
|
||||
await push_queue.put(request)
|
||||
await requests.async_concurrency(
|
||||
push_queue, con_count=dock.CONCURRENCY_COUNT, retry=dock.MAX_RETRY_COUNT,
|
||||
after_request=after_result_notify_request
|
||||
)
|
||||
echo_log(f"推送工单操作结果完成...")
|
||||
Reference in New Issue
Block a user