use mysql_async::prelude::Query;
use mysql_async::{Opts, OptsBuilder};
use crate::mysql::error_helper::ErrorHelper;
#[derive(Clone)]
pub struct MysqlCancelToken {
pub(crate) opts: Opts,
pub(crate) kill_id: u32,
}
impl MysqlCancelToken {
pub async fn cancel_query(&self) -> diesel::result::ConnectionResult<()> {
let builder = OptsBuilder::from_opts(self.opts.clone());
let conn = mysql_async::Conn::new(builder).await.map_err(ErrorHelper)?;
format!("KILL QUERY {};", self.kill_id)
.ignore(conn)
.await
.map_err(ErrorHelper)?;
Ok(())
}
}