code: def issueBatchJob(self, jobNode):
          
          # Round cores to minCores and apply scale
          cores = math.ceil(jobNode.cores * self.scale / self.minCores) * self.minCores
          assert cores <= self.maxCores, ('The job {} is requesting {} cores, more than the maximum of '
                                          '{} cores this batch system was configured with. Scale is '
                                          'set to {}.'.format(jobNode.jobName, cores, self.maxCores, self.scale))
          assert cores >= self.minCores
          assert jobNode.memory <= self.maxMemory, ('The job {} is requesting {} bytes of memory, more than '
                                            'the maximum of {} this batch system was configured '
                                            'with.'.format(jobNode.jobName, jobNode.memory, self.maxMemory))
  
          self.checkResourceRequest(jobNode.memory, cores, jobNode.disk)
          log.debug("Issuing the command: %s with memory: %i, cores: %i, disk: %i" % (
              jobNode.command, jobNode.memory, cores, jobNode.disk))
          with self.jobIndexLock:
              jobID = self.jobIndex
              self.jobIndex += 1
          self.jobs[jobID] = jobNode.command
          self.inputQueue.put((jobNode.command, jobID, cores, jobNode.memory,
                               jobNode.disk, self.environment.copy()))
          if self.debugWorker:  # then run immediately, blocking for return
              self.worker(self.inputQueue)
          return jobID
docs: Adds the command and resources to a queue to be run.