code: def start_job(self, eid, rid, job_config):
      self.cursor.execute(
          "INSERT INTO job (eid, start_time, job_config, status) VALUES (?, strftime('%s','now'), ?, 'RUNNING')",
          (eid, json.dumps(job_config)),
      )
      self.connector.commit()
      jid = self.cursor.lastrowid
      self.cursor.execute(
          "INSERT INTO job_attempt (jid, num, rid, start_time) VALUES (?, 0, ?, (SELECT start_time FROM job j WHERE j.jid=?))",
          (jid, rid, jid),
      )
      self.connector.commit()
      return jid
  
imports: import logging
  import re
  import sqlite3
  import threading
  from time import sleep
  import json
  from datetime import datetime
  from .AbstractConnector import AbstractConnector
label_desc: Use image node_id 21 for calling the SQLiteConnector obj's underlying member method code with example usage: obj.start_job(eid, rid, job_config) and returns: jid