Просмотр исходного кода

任务采集失败时新增字段 "failed_times"

dongzhaorui 1 год назад
Родитель
Сommit
35d0be59b0
1 измененных файлов с 11 добавлено и 3 удалено
  1. 11 3
      FworkSpider/feapder/buffer/item_buffer.py

+ 11 - 3
FworkSpider/feapder/buffer/item_buffer.py

@@ -132,7 +132,8 @@ class ItemBuffer(threading.Thread):
                 elif isinstance(data, FailedTaskItem):
                     data.queue_name = self._tab_items  # 采集任务队列名称
                     failed_times = data.to_dict.pop('failed_times', 0)
-                    if failed_times >= setting.SPIDER_MAX_RETRY_TIMES:
+                    failed_retries = data.to_dict.pop('failed_retries', 0)
+                    if failed_retries >= setting.SPIDER_MAX_RETRY_TIMES:
                         state = 4  # 待采集任务停止采集状态[4=停止采集]
                         # 更新完成采集的任务状态
                         update_item = UpdateItem(
@@ -146,6 +147,7 @@ class ItemBuffer(threading.Thread):
                         # 保存失败的采集任务详情
                         data.state = state
                         data.failed_times = failed_times
+                        data.failed_retries = failed_retries
                         data.create_at = update_at
                         failed_task_items.append(data)
                     else:
@@ -153,9 +155,15 @@ class ItemBuffer(threading.Thread):
                             state=3,  # 待采集任务失败采集状态[3=采集失败]
                             pyuuid=data.pyuuid,
                             update_at=update_at,
-                            failed_times=failed_times + 1
+                            failed_times=failed_times + 1,
+                            failed_retries=failed_retries + 1
                         )
-                        update_item.update_key = ['state', 'update_at', 'failed_times']
+                        update_item.update_key = [
+                            'state',
+                            'update_at',
+                            'failed_times',
+                            'failed_retries',
+                        ]
                         update_item.table_name = setting.TASK_REQUEST_PRODUCE
                         update_items.append(update_item)