code: def launch(self, command_line, dependencies_description=None, env=[], remote_staging=[], job_config=None):
          
          launch_params = dict(command_line=command_line, job_id=self.job_id)
          submit_params_dict = submit_params(self.destination_params)
          if submit_params_dict:
              launch_params['params'] = json_dumps(submit_params_dict)
          if dependencies_description:
              launch_params['dependencies_description'] = json_dumps(dependencies_description.to_dict())
          if env:
              launch_params['env'] = json_dumps(env)
          if remote_staging:
              launch_params['remote_staging'] = json_dumps(remote_staging)
          if job_config and 'touch_outputs' in job_config:
              # message clients pass the entire job config
              launch_params['submit_extras'] = json_dumps({'touch_outputs': job_config['touch_outputs']})
  
          if job_config and self.setup_handler.local:
              # Setup not yet called, job properties were inferred from
              # destination arguments. Hence, must have Pulsar setup job
              # before queueing.
              setup_params = _setup_params_from_job_config(job_config)
              launch_params['setup_params'] = json_dumps(setup_params)
          return self._raw_execute("submit", launch_params)
docs: Queue up the execution of the supplied `command_line` on the remote
          server. Called launch for historical reasons, should be renamed to
          enqueue or something like that.
  
          **Parameters**
  
          command_line : str
              Command to execute.