如何在Google Apps脚本中汇集连接?

时间:2013-10-11 16:59:56

标签: jdbc google-apps-script connection-pooling

以前在 Google Apps脚本中编写脚本时,我在所有功能中打开并关闭了我的Jdbc连接。

为了加快我的应用程序,最好保持连接打开并在另一个函数中使用它。但是,我不知道如何在 Google Apps脚本中执行此操作。

有人可以给我一个建议或一个例子吗?

1 个答案:

答案 0 :(得分:0)

以下是如何在ScriptDB中保留连接的示例。

function myFunction() {
  var conn = ScriptDb.getMyDb().query({name : "my_connection"} );
  var connection = null;
  var itemId = null;

  if(conn.getSize() == 0) {
    Logger.log(" Connection not found, creating new one");
    connection = Jdbc.getConnection('jdbc:mysql://<host>:3306/<instance>', 'user', 'password');
    itemId = ScriptDb.getMyDb().save({name : "my_connection", connection : connection}).getId();

  }else {
    Logger.log(" Connection found, retrieving "+conn.getSize());
    var dbItem  = conn.next();
    connection = dbItem.connection;
    itemId = dbItem.getId();
  }

  //Check if it is closed
  if(connection.isClosed()) {
    connection = Jdbc.getConnection('jdbc:mysql://<host>:3306/<instance>', 'user', 'password');

    //After opening remember to save to dabatase again and retain only one connection
    ScriptDb.getMyDb().removeById(itemId);
    ScriptDb.getMyDb().save({name : "my_connection", connection : connection});
  }

  //Use your connection here

  //Remenber to close it based in some criteria
}

示例here