From 10ea9b412d0e9bc3152be8138811b2f473c48c67 Mon Sep 17 00:00:00 2001 From: Dennis Kobert Date: Sun, 9 Feb 2020 23:06:13 +0000 Subject: latest Noria try --- src/main.rs | 40 ++++++++++++++++++++++++++++++++++------ 1 file changed, 34 insertions(+), 6 deletions(-) (limited to 'src/main.rs') diff --git a/src/main.rs b/src/main.rs index 16e7bbd..bfd53b8 100644 --- a/src/main.rs +++ b/src/main.rs @@ -8,6 +8,7 @@ use rspotify::spotify::util::get_token; mod serve; +//#[tokio::main] fn main() { // Set client_id and client_secret in .env file or // export CLIENT_ID="your client_id" @@ -22,16 +23,37 @@ fn main() { // .build(); // // looking up article 42 should yield the article we inserted with a vote count of 1 - init(); + let mut rt = tokio::runtime::Builder::new() + .enable_all() + .threaded_scheduler() + .thread_name("voter") + .build() + .unwrap(); + + let mut db = rt + .block_on(noria::ControllerHandle::from_zk("127.0.0.1:2181")) + .unwrap(); + println!("test"); + rt.block_on(db.install_recipe( + " + CREATE TABLE Article (aid int, title varchar(255), url text, PRIMARY KEY(aid)); + CREATE TABLE Vote (aid int, uid int); +", + )) + .unwrap(); + println!("staring_init"); + let init = init(); rocket::ignite() .mount("/", routes![serve::token, serve::get_tracks]) .launch(); + rt.block_on(init); } - async fn init() { - let mut db = noria::ControllerHandle::from_zk("127.0.0.1:2181").await.unwrap(); + let mut db = noria::ControllerHandle::from_zk("127.0.0.1:2181") + .await + .unwrap(); //db.ready(); //println!("test {:?}", db.url()); @@ -40,7 +62,9 @@ async fn init() { CREATE TABLE Article (aid int, title varchar(255), url text, PRIMARY KEY(aid)); CREATE TABLE Vote (aid int, uid int); ", - ); + ) + .await + .unwrap(); println!("test"); // we can then get handles that let us insert into the new tables let mut article = db.table("Article").await.unwrap(); @@ -52,7 +76,8 @@ async fn init() { let url = "https://pdos.csail.mit.edu"; article .insert(vec![aid.into(), title.into(), url.into()]) - .await.unwrap(); + .await + .unwrap(); // and then vote for it vote.insert(vec![aid.into(), 1.into()]).await.unwrap(); @@ -68,7 +93,9 @@ async fn init() { SELECT Article.aid, title, url, VoteCount.votes AS votes \ FROM Article LEFT JOIN VoteCount ON (Article.aid = VoteCount.aid) \ WHERE Article.aid = ?;", - ); + ) + .await + .unwrap(); // and then get handles that let us execute those queries to fetch their results let mut awvc = db.view("ArticleWithVoteCount").await.unwrap(); @@ -82,4 +109,5 @@ async fn init() { 1.into() ]] ); + println!("init done"); } -- cgit v1.2.3-54-g00ecf