class_docstr: Represents an OpTask that only handles metadata, instead of Block data.
class_docstr_tok: ["Represents","an","OpTask","that","only","handles","metadata",",","instead","of","Block","data","."]
docstr: Callback when the task is finished.
docstr_tok: ["Callback","when","the","task","is","finished","."]
code: def on_task_finished(self):
      """Callback when the task is finished."""
      self._task_done_callback()
  
imports: from abc import ABC, abstractmethod
  from typing import Any, Callable, Dict, List, Optional, Union
  import ray
  from .ref_bundle import RefBundle
  from ray._raylet import ObjectRefGenerator
  from ray.data._internal.execution.interfaces.execution_options import ExecutionOptions, ExecutionResources
  from ray.data._internal.execution.interfaces.op_runtime_metrics import OpRuntimeMetrics
  from ray.data._internal.logical.interfaces import Operator
  from ray.data._internal.stats import StatsDict
  from ray.data.context import DataContext
label_desc: Use image node_id 3 for calling the MetadataOpTask obj's underlying member method code with example usage: obj.on_task_finished() without return types