提交 4942a681 authored 作者: lc.zhou's avatar lc.zhou

ils-video-recorder:解决重试次数过多报错

上级 a3794e9a
...@@ -13,7 +13,7 @@ from intelab_python_sdk.ffmpeg.ffmpeg_concat import concat ...@@ -13,7 +13,7 @@ from intelab_python_sdk.ffmpeg.ffmpeg_concat import concat
from intelab_python_sdk.ffmpeg.ffmpeg_prune import prune as ffmpeg_prune from intelab_python_sdk.ffmpeg.ffmpeg_prune import prune as ffmpeg_prune
from ils_common_video.db import rabbitmq_connect, redis_connect, influxdb from ils_common_video.db import rabbitmq_connect, redis_connect, influxdb
from ils_common_video.const import PROCESSING_CAMERA_KEY,CAMERA_CALLBACK_KEY from ils_common_video.const import PROCESSING_CAMERA_KEY, CAMERA_CALLBACK_KEY
from ils_common_video.utils.api_helper import IntelabApiHelper, PlaybackUrlException from ils_common_video.utils.api_helper import IntelabApiHelper, PlaybackUrlException
from ils_common_video.utils.isc_client import HikVisionClient from ils_common_video.utils.isc_client import HikVisionClient
from ils_common_video.utils import aliyun_oss from ils_common_video.utils import aliyun_oss
...@@ -27,8 +27,9 @@ tz = pytz.timezone('Asia/Shanghai') ...@@ -27,8 +27,9 @@ tz = pytz.timezone('Asia/Shanghai')
video_path = '/tmp/videos/isc-record' video_path = '/tmp/videos/isc-record'
os.makedirs(video_path, exist_ok=True) os.makedirs(video_path, exist_ok=True)
hk_config = dynaconf.settings.get('ISC') hk_config = dynaconf.settings.get('ISC')
# hik_client = HikVisionClient(str(hk_config.get('KEY')), hk_config.get('SECRET'), # hik_client = HikVisionClient(str(hk_config.get('KEY')), hk_config.get('SECRET'),
# hk_config.get('HOST'), hk_config.get('PORT')) # hk_config.get('HOST'), hk_config.get('PORT'))
# api_helper = IntelabApiHelper() # api_helper = IntelabApiHelper()
...@@ -221,13 +222,17 @@ class ProcessMessage: ...@@ -221,13 +222,17 @@ class ProcessMessage:
now = datetime.now() now = datetime.now()
url = next_retry_time = None url = next_retry_time = None
remark = event.get('remark','') remark = event.get('remark', '')
status = 2 status = 2
file_name = record_result['file_name'].split('/')[-1] file_name = record_result['file_name'].split('/')[-1]
if not event.get('retry_info'): if not event.get('retry_info'):
event['retry_info'] = '[]' event['retry_info'] = '[]'
event['retry_info'] = json.loads(event['retry_info'].replace('\n', ' ')) try:
event['retry_info'] = json.loads(event['retry_info'].replace('\n', ' '))
except:
log.error('json error camera is : %s,%s', event['camera_code'], event['retry_info'])
event['retry_info'] = []
retry_count = len(event['retry_info']) retry_count = len(event['retry_info'])
if os.path.isfile(record_result['file_name']): if os.path.isfile(record_result['file_name']):
...@@ -240,13 +245,13 @@ class ProcessMessage: ...@@ -240,13 +245,13 @@ class ProcessMessage:
if record_result.get('except') and record_result.get('offline'): if record_result.get('except') and record_result.get('offline'):
# 当前摄像头离线只增加下次重试时间 # 当前摄像头离线只增加下次重试时间
log.info('%s: camera offline.', event['camera_code']) log.info('%s: camera offline.', event['camera_code'])
next_retry_time = now + timedelta(minutes=30) next_retry_time = now + timedelta(minutes=120)
remark = (remark or 'start') + '+offline' remark = (remark or 'start') + '+offline'
elif record_result.get('is_completed'): elif record_result.get('is_completed'):
log.info('%s: %s is completed.', event['camera_code'], record_result['file_name']) log.info('%s: %s is completed.', event['camera_code'], record_result['file_name'])
status = 5 # 录制完成的视频状态为5(还未被filter分析) status = 5 # 录制完成的视频状态为5(还未被filter分析)
else: else:
next_retry_time = now + timedelta(minutes=10) next_retry_time = now + timedelta(minutes=120)
retry_count += 1 retry_count += 1
if (next_retry_time - event['start_time']) > timedelta(days=3): if (next_retry_time - event['start_time']) > timedelta(days=3):
# 重试最长时间为3天 # 重试最长时间为3天
...@@ -412,7 +417,6 @@ class ProcessMessage: ...@@ -412,7 +417,6 @@ class ProcessMessage:
if not is_completed: if not is_completed:
log.info('摄像头%s在%s, %s录制未完成', body['camera_code'], start_time, end_time) log.info('摄像头%s在%s, %s录制未完成', body['camera_code'], start_time, end_time)
part_files = sorted(list(part_files_set)) part_files = sorted(list(part_files_set))
if len(part_files) > 1: if len(part_files) > 1:
log.info('摄像头%s存在多个视频文件%s,将进行合并', body['camera_code'], part_files) log.info('摄像头%s存在多个视频文件%s,将进行合并', body['camera_code'], part_files)
......
Markdown 格式
0%
您添加了 0 到此讨论。请谨慎行事。
请先完成此评论的编辑!
注册 或者 后发表评论