code: def transmit_learner_data(username, channel_code, channel_pk):
      
      start = time.time()
      api_user = User.objects.get(username=username)
      integrated_channel = INTEGRATED_CHANNEL_CHOICES[channel_code].objects.get(pk=channel_pk)
      LOGGER.info('Processing learners for integrated channel using configuration: [%s]', integrated_channel)
  
      # Note: learner data transmission code paths don't raise any uncaught exception, so we don't need a broad
      # try-except block here.
      integrated_channel.transmit_learner_data(api_user)
  
      duration = time.time() - start
      LOGGER.info(
          'Learner data transmission task for integrated channel configuration [%s] took [%s] seconds',
          integrated_channel,
          duration
      )
docs: Task to send learner data to each linked integrated channel.
  
      Arguments:
          username (str): The username of the User to be used for making API requests for learner data.
          channel_code (str): Capitalized identifier for the integrated channel
          channel_pk (str): Primary key for identifying integrated channel