code: def retry_shipper_tasks(self, project_name, logstore_name, shipper_name, task_list):
          
          headers = {}
          params = {}
          body = six.b(json.dumps(task_list))
          headers['Content-Type'] = 'application/json'
          headers['x-log-bodyrawsize'] = str(len(body))
          resource = "/logstores/" + logstore_name + "/shipper/" + shipper_name + "/tasks"
  
          (resp, header) = self._send("PUT", project_name, body, resource, params, headers)
          return RetryShipperTasksResponse(header, resp)
docs: retry failed tasks , only the failed task can be retried
          Unsuccessful opertaion will cause an LogException.
  
          :type project_name: string
          :param project_name: the Project name 
  
          :type logstore_name: string
          :param logstore_name: the logstore name
  
          :type shipper_name: string
          :param shipper_name: the shipper name
  
          :type task_list: string array
          :param task_list: the failed task_id list, e.g ['failed_task_id_1', 'failed_task_id_2',...], currently the max retry task count 10 every time
  
          :return: RetryShipperTasksResponse
          
          :raise: LogException