code: def follow(
          self,
          users,
          run_id,
          track_interval=1,
          trade_cmd_expire_seconds=120,
          cmd_cache=True,
          entrust_prop="limit",
          send_interval=0,
      ):
          
          users = self.warp_list(users)
          run_ids = self.warp_list(run_id)
  
          if cmd_cache:
              self.load_expired_cmd_cache()
  
          self.start_trader_thread(
              users, trade_cmd_expire_seconds, entrust_prop, send_interval
          )
  
          workers = []
          for id_ in run_ids:
              strategy_name = self.extract_strategy_name(id_)
              strategy_worker = Thread(
                  target=self.track_strategy_worker,
                  args=[id_, strategy_name],
                  kwargs={"interval": track_interval},
              )
              strategy_worker.start()
              workers.append(strategy_worker)
              log.info("开始跟踪策略: %s", strategy_name)
          for worker in workers:
              worker.join()
docs: 跟踪ricequant对应的模拟交易，支持多用户多策略
          :param users: 支持easytrader的用户对象，支持使用 [] 指定多个用户
          :param run_id: ricequant 的模拟交易ID，支持使用 [] 指定多个模拟交易
          :param track_interval: 轮训模拟交易时间，单位为秒
          :param trade_cmd_expire_seconds: 交易指令过期时间, 单位为秒
          :param cmd_cache: 是否读取存储历史执行过的指令，防止重启时重复执行已经交易过的指令
          :param entrust_prop: 委托方式, 'limit' 为限价，'market' 为市价, 仅在银河实现
          :param send_interval: 交易发送间隔， 默认为0s。调大可防止卖出买入时卖出单没有及时成交导致的买入金额不足