Skip to content
项目
群组
代码片段
帮助
当前项目
正在载入...
登录 / 注册
切换导航面板
H
hh_ccs
项目
项目
详情
活动
周期分析
仓库
仓库
文件
提交
分支
标签
贡献者
图表
比较
统计图
议题
0
议题
0
列表
看板
标记
里程碑
合并请求
0
合并请求
0
CI / CD
CI / CD
流水线
作业
日程
统计图
Wiki
Wiki
代码片段
代码片段
成员
成员
折叠边栏
关闭边栏
活动
图像
聊天
创建新问题
作业
提交
问题看板
Open sidebar
贺阳
hh_ccs
Commits
7672c8d0
提交
7672c8d0
authored
9月 28, 2024
作者:
郑笛
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
1.优化提单批量推送包裹状态 2.增加3次重试机制
上级
1d982847
显示空白字符变更
内嵌
并排
正在显示
2 个修改的文件
包含
12 行增加
和
4 行删除
+12
-4
cc_bill_loading.py
ccs_connect_tiktok/models/cc_bill_loading.py
+2
-4
tt_api.py
ccs_connect_tiktok/models/tt_api.py
+10
-0
没有找到文件。
ccs_connect_tiktok/models/cc_bill_loading.py
浏览文件 @
7672c8d0
...
...
@@ -247,14 +247,13 @@ class CcBl(models.Model):
# 定义一个方法, 获取提单下的所有未同步的小包,并回传小包状态
def
callback_track
(
self
):
for
item
in
self
:
ship_packages
=
self
.
env
[
'cc.ship.package'
]
.
search
([(
'bl_id'
,
'='
,
item
.
id
),
(
'is_sync'
,
'='
,
False
)])
ship_packages
=
self
.
env
[
'cc.ship.package'
]
.
search
([(
'bl_id'
,
'in'
,
self
.
ids
),
(
'is_sync'
,
'='
,
False
)])
# for package in ship_packages:
# package.callback_track()
tt_api_obj
=
self
.
env
[
"ao.tt.api"
]
.
sudo
()
async
def
perform_requests
():
ssl_context
=
ssl
.
create_default_context
(
cafile
=
certifi
.
where
())
async
with
aiohttp
.
ClientSession
(
connector
=
aiohttp
.
TCPConnector
(
ssl
=
ssl_context
))
as
session
:
async
with
aiohttp
.
ClientSession
(
connector
=
aiohttp
.
TCPConnector
(
ssl
=
ssl_context
),
timeout
=
aiohttp
.
ClientTimeout
(
total
=
60
))
as
session
:
tasks
=
[]
for
index
,
package
in
enumerate
(
ship_packages
):
if
not
package
.
is_sync
and
package
.
state
and
package
.
state
.
tk_code
:
...
...
@@ -288,7 +287,6 @@ class CcBl(models.Model):
request_id
=
response_data
[
'requestID'
]
self
.
env
[
'ao.tt.api.log'
]
.
sudo
()
.
create_api_log
(
package_order
.
tracking_no
or
''
,
''
,
data
,
0
,
request_id
,
source
=
'推出'
)
return
True
def
deal_ship_package_state
(
self
):
for
item
in
self
:
...
...
ccs_connect_tiktok/models/tt_api.py
浏览文件 @
7672c8d0
# coding=utf-8
import
asyncio
import
aiohttp
import
requests
import
json
import
datetime
,
time
...
...
@@ -127,11 +129,19 @@ class TT(models.Model):
request_url
=
tt_url
+
url
logging
.
info
(
'request_url:
%
s'
%
request_url
)
logging
.
info
(
'request_data:
%
s'
%
parameter
)
for
i
in
range
(
3
):
# 尝试最多3次
try
:
async
with
session
.
post
(
request_url
,
headers
=
headers
,
data
=
parameter
)
as
response
:
response_data
=
await
response
.
json
()
logging
.
info
(
'response:
%
s'
,
response_data
)
# print(response.json())
return
response_data
except
Exception
as
e
:
if
i
<
2
:
# 如果不是最后一次尝试,等待后重试
await
asyncio
.
sleep
(
2
**
i
)
# 指数退避策略
else
:
logging
.
warning
(
'request error:
%
s'
%
str
(
e
))
return
{
'code'
:
500
,
'requestID'
:
'request error timeout'
,
'msg'
:
'超时,请重试'
}
# 如果重试次数用尽,抛出异常
async
def
async_callback_track_callback
(
self
,
session
,
push_data
,
package_id
):
"""包裹轨迹回传"""
...
...
编写
预览
Markdown
格式
0%
重试
或
添加新文件
添加附件
取消
您添加了
0
人
到此讨论。请谨慎行事。
请先完成此评论的编辑!
取消
请
注册
或者
登录
后发表评论