code: def _send_metrics_tags_params(
      run_data_queueing_processor, run_id, run_operations=None
  ):
      if run_operations is None:
          run_operations = []
      metrics_sent = []
      tags_sent = []
      params_sent = []
  
      for params, tags, metrics in _get_run_data():
          run_operations.append(
              run_data_queueing_processor.log_batch_async(
                  run_id=run_id,
                  metrics=metrics,
                  tags=tags,
                  params=params,
              )
          )
  
          time.sleep(random.randint(1, 3))
          metrics_sent += metrics
          tags_sent += tags
          params_sent += params
  
imports: import io
  import pickle
  import random
  import threading
  import time
  import uuid
  import pytest
  from mlflow import MlflowException
  from mlflow.entities.metric import Metric
  from mlflow.entities.param import Param
  from mlflow.entities.run_tag import RunTag
  from mlflow.utils.async_logging.async_logging_queue import AsyncLoggingQueue
label_desc: Use image node_id 6 for calling a global function with example usage: _send_metrics_tags_params(run_data_queueing_processor, run_id, run_operations) without return types