class_docstr: A rendezvous class for different actor/task processes to meet.
  
  To initialize an GLOO collective communication group, different
  actors/tasks spawned in Ray in a collective group needs to meet
  each other to synchronize the GLOOUniqueID. This class guarantees
  they meet via the GLOOUniqueIDStore, initialized on the rank=0
  process.
  
  Args:
      group_name: the unique user-specified group name.
code: def __init__(self, group_name, context, store_type, device_type):
      self._group_name = group_name
      self._context = context
      redis_address = ray._private.worker._global_node.redis_address
      (self._redis_ip_address, self._redis_port) = (
          redis_address.split(":")
          if store_type == "redis"
          else (None, None)
      )
      self._process_ip_address = ray.util.get_node_ip_address()
      logger.debug(
          "Redis address: {}, port: {}, this actor address: {}.".format(
              self._redis_ip_address,
              self._redis_port,
              self._process_ip_address,
          )
      )
      self._store_type = store_type
      self._device_type = device_type
      self._store = None
      self._device = None
      self.create_store(store_type)
      self.create_device(device_type)
  
imports: import datetime
  import logging
  import os
  import shutil
  import time
  import numpy
  import pygloo
  import ray
  from ray._private import ray_constants
  from ray.util.collective.collective_group import gloo_util
  from ray.util.collective.collective_group.base_collective_group import BaseGroup
  from ray.util.collective.const import get_store_name
  from ray.util.collective.types import AllGatherOptions, AllReduceOptions, Backend, BarrierOptions, BroadcastOptions, RecvOptions, ReduceOptions, ReduceScatterOptions, SendOptions
label_desc: Use image node_id 1 to create a new Rendezvous object  with example: obj = Rendezvous(group_name, context, store_type, device_type)