All Downloads are FREE. Search and download functionalities are using the official Maven repository.

tech.mlsql.RunScript.scala Maven / Gradle / Ivy

The newest version!
package tech.mlsql

import org.apache.http.client.fluent.{Form, Request}
import org.apache.http.util.EntityUtils
import streaming.core.strategy.platform.PlatformManager
import streaming.dsl.ScriptSQLExec
import tech.mlsql.common.utils.serder.json.JSONTool

/**
 * 7/12/2020 WilliamZhu([email protected])
 */
object RunScript {

  def execute(url: String, jobName: String, sql: String) = {
    var params = JSONTool.parseJson[Map[String, String]](ScriptSQLExec.context().userDefinedParam("__PARAMS__"))
    params = params ++ Map("sql" -> sql, "jobName" -> jobName)
    val form = Form.form()
    params.foreach { case (k, v) =>
      form.add(k, v)
    }
    val resp = Request.Post(url).connectTimeout(60 * 1000)
      .socketTimeout(10 * 60 * 1000).bodyForm(form.build()).execute().returnResponse()
    EntityUtils.toString(resp.getEntity)
  }

  def getLocalUrl = {
    val runtime = PlatformManager.getRuntime
    val port = runtime.params.getOrDefault("streaming.driver.port", "9003").toString
    s"http://127.0.0.1:${port}"
  }

}




© 2015 - 2025 Weber Informatics LLC | Privacy Policy