code: def run(self):
      if self._shuffle:
          self._dataset.shuffle()
  
      while True:
          input_npy = np.zeros(
              self._batch_size,
              dtype=[
                  ("user_id_input", np.int32),
                  ("item_id_input", np.int32),
                  ("labels", np.float32),
              ],
          )
  
          if self._state + self._batch_size >= len(self._dataset.data):
              break
  
          for ind in range(self._batch_size):
              entry = self._dataset.data[self._state + ind]
              input_npy[ind] = (
                  entry["user_id"],
                  entry["item_id"],
                  entry["label"],
              )
  
          self._state += self._batch_size
          self._q.put(input_npy, block=True)
  
file_path: openrec/openrec/tf1/legacy/utils/samplers/explicit_sampler.py
imports: import numpy
  from multiprocessing import Process
  from openrec.tf1.legacy.utils.samplers import Sampler
label_desc: Use image node_id 2 for calling the _ExplicitSampler obj's underlying member method code with example usage: obj.run() without return types