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

com.datastax.spark.connector.writer.QueryExecutor.scala Maven / Gradle / Ivy

package com.datastax.spark.connector.writer

import com.datastax.driver.core.{HostDistance, ResultSet, Session, Statement}
import AsyncExecutor.Handler
import org.apache.spark.SparkEnv

class QueryExecutor(
 session: Session,
 maxConcurrentQueries: Int,
 successHandler: Option[Handler[RichStatement]],
 failureHandler: Option[Handler[RichStatement]])

  extends AsyncExecutor[RichStatement, ResultSet](
    stmt => session.executeAsync(stmt.asInstanceOf[Statement]),
    maxConcurrentQueries,
    successHandler,
    failureHandler)

object QueryExecutor {

  /**
    * Builds a query executor whose max requests per connection is limited to the MaxRequests per Connection
    */
  def apply(
    session: Session,
    parallelismLevel: Int,
    successHandler: Option[Handler[RichStatement]],
    failureHandler: Option[Handler[RichStatement]]): QueryExecutor = {

    val poolingOptions = session.getCluster.getConfiguration.getPoolingOptions
    val maxConcurrentQueries = (parallelismLevel)
    new QueryExecutor(session, maxConcurrentQueries, successHandler, failureHandler)
  }
}




© 2015 - 2024 Weber Informatics LLC | Privacy Policy