mysql-r2d2 28.0.0

MySQL support for the r2d2 connection pool
Documentation
  • Coverage
  • 100%
    2 out of 2 items documented1 out of 1 items with examples
  • Size
  • Source code size: 41.87 kB This is the summed size of all the files inside the crates.io package for this release.
  • Documentation size: 572.82 kB This is the summed size of all files generated by rustdoc for all configured targets
  • Ø build duration
  • this release: 1m 36s Average build duration of successful builds.
  • all releases: 1m 36s Average build duration of successful builds in releases after 2024-10-23.
  • Links
  • x52dev/mysql-r2d2
    0 0 0
  • crates.io
  • Dependencies
  • Versions
  • Owners
  • robjtede

mysql-r2d2

crates.io Documentation dependency status MIT CI codecov Version Download

mysql support library for the r2d2 connection pool.

Usage

use std::{env, sync::Arc, thread};

use mysql_r2d2::{
    mysql::{prelude::*, Opts, OptsBuilder},
    r2d2, MySqlConnectionManager,
};

fn main() {
    let url = env::var("DATABASE_URL").unwrap();
    let opts = Opts::from_url(&url).unwrap();
    let builder = OptsBuilder::from_opts(opts);
    let manager = MySqlConnectionManager::new(builder);
    let pool = Arc::new(r2d2::Pool::builder().max_size(4).build(manager).unwrap());

    let mut tasks = vec![];

    for _ in 0..3 {
        let pool = pool.clone();
        let th = thread::spawn(move || {
            let mut conn = pool.get().expect("error getting connection from pool");

            let _ = conn
                .query("SELECT version()")
                .map(|rows: Vec<String>| rows.is_empty())
                .expect("error executing query");
        });

        tasks.push(th);
    }

    for th in tasks {
        let _ = th.join();
    }
}