async get()

in src/scaler/scaler-core/state.js [263:282]


  async get() {
    try {
      const query = {
        columns: STATE_KEY_DEFINITIONS.map((c) => c.name),
        keySet: {keys: [{values: [{stringValue: this.getClusterId()}]}]},
      };

      const [rows] = await this.table.read(query);
      if (rows.length == 0) {
        return StateSpanner.convertFromStorage(await this.init());
      }
      return StateSpanner.convertFromStorage(rows[0].toJSON());
    } catch (e) {
      logger.fatal({
        message: `Failed to read from Spanner State storage: ${StateSpanner.getStateDatabasePath(this.stateProjectId, this.stateDatabase)}/tables/${this.table.name}: ${e}`,
        err: e,
      });
      throw e;
    }
  }