use node_workers::{make_payloads, AsPayload, EmptyPayload, WorkerPool};
use serde_json::json;
fn main() {
{
let mut pool = WorkerPool::setup("examples/worker", 2);
pool.with_debug(true);
let payloads = vec![10, 20, 30, 40];
pool.perform::<(), _>("fib", payloads).unwrap();
}
{
let mut pool = WorkerPool::setup("examples/worker", 2);
let thread = pool.run_worker("fib2", 40u32);
let result = thread.get_result::<u32>().unwrap();
println!("run_worker result: {:?}", result);
}
{
let mut pool = WorkerPool::setup("examples/worker", 1);
let payloads = vec![EmptyPayload::new(), EmptyPayload::new()];
pool.perform::<(), _>("ping", payloads).unwrap();
pool
.perform::<(), _>("ping", EmptyPayload::bulk(2))
.unwrap();
}
{
let mut pool = WorkerPool::setup("examples/worker", 1);
let payloads = make_payloads!(EmptyPayload::new(), 20, "test");
pool.perform::<(), _>("ping", payloads).unwrap();
}
{
use serde::{Deserialize, Serialize};
#[derive(Serialize, Deserialize, Debug)]
struct Point {
pub x: u32,
pub y: u32,
}
let mut pool = WorkerPool::setup("examples/worker", 1);
let payloads = vec![Point { x: 5, y: 1 }, Point { x: 2, y: 4 }]
.into_iter()
.map(|x| json!(x))
.collect();
pool.perform::<(), _>("ping", payloads).unwrap();
}
}