def __gen_next_write_task()

in datahub/client/producer/shard_writer.py [0:0]


    def __gen_next_write_task(self, record_pack):
        records = record_pack.records
        futures = record_pack.write_result_futures
        init_time = record_pack.init_time

        try:
            start_time = time.time()
            self.__write_once(records)
            end_time = time.time()

            self._logger.debug("write async once success. key: {}, shard_id: {}, records size: {}"
                               .format(self._uniq_key, self._shard_id, len(records)))
            self.__set_result_to_futures(futures, WriteResult(self._shard_id, end_time - init_time, end_time - start_time))
        except DatahubException as e:
            self._logger.warning("write async once fail. key: {}, shard_id: {}, records size: {}, DatahubException: {}"
                                 .format(self._uniq_key, self._shard_id, len(records), e))
            self.__set_exception_to_futures(futures, e)
        except Exception as e:
            self._logger.warning("write async once fail. key: {}, shard_id: {}, records size: {}, Exception: {}"
                                 .format(self._uniq_key, self._shard_id, len(records), e))
            self.__set_exception_to_futures(futures, e)