code: def producer():
      pub_port = random.randint(11000, 12000)
      QueueName = "ABC"
  
      # Create a producer
      producer = ZMQProducer(
          port=pub_port,
          queue_name=QueueName,
          queue_stash=None,
          context=None,
      )
      yield producer
      # Cleanup code
      if producer.alive:
          producer.close()
  
imports: from collections import defaultdict
  import random
  import sys
  from time import sleep
  from faker import Faker
  import pytest
  from zmq import Socket
  import syft
  from syft.service.queue.base_queue import AbstractMessageHandler
  from syft.service.queue.queue import QueueManager
  from syft.service.queue.zmq_queue import ZMQClient
  from syft.service.queue.zmq_queue import ZMQClientConfig
  from syft.service.queue.zmq_queue import ZMQConsumer
  from syft.service.queue.zmq_queue import ZMQProducer
  from syft.service.queue.zmq_queue import ZMQQueueConfig
  from syft.service.response import SyftError
  from syft.service.response import SyftSuccess
  from syft.util.util import get_queue_address
label_desc: Use image node_id 4 for calling a global function with example usage: producer() without return types