Rename crate, update TODO

This commit is contained in:
asonix 2018-11-16 18:14:33 -06:00
parent 960c0235c4
commit 9cff817ed6
5 changed files with 7 additions and 71 deletions

View file

@ -1,5 +1,5 @@
[package] [package]
name = "jobs" name = "background-jobs"
version = "0.1.0" version = "0.1.0"
authors = ["asonix <asonix@asonix.dog>"] authors = ["asonix <asonix@asonix.dog>"]
edition = "2018" edition = "2018"

70
TODO
View file

@ -2,70 +2,6 @@
Gracefull Shutdown Gracefull Shutdown
2. 2.
base port is return port Don't mark pushed jobs as running, mark them as 'staged'
base port + 1 is port mapping port Clear staged jobs that are 10 minutes old
base port + 2 is first queue port Send a Running notification from the worker to move a job from 'staged' to 'running'
server creates port mapping ON START, and moves jobs started more than 24 hours prior to now into QUEUE from RUNNING
server supplies an infinite push of port mapping on base_port + 1
worker gets port mapping from server using pull on base_port + 1
QueuePort bucket
key: PortNum
Value: QueueName
get access:
Cursor iterates over Key/Value pairs
set access:
Ports are never overwritten, but new ports can be added
interaction:
base_port: usize,
queues: BTreeSet<String>
queue_port_bucket = store.bucket();
store = store.write_lock();
let read_txn = store.read_txn();
let write_txn = store.write_txn();
let queue_map = lock(write_txn, |write_txn| {
let cursor = read_txn.cursor();
let (unused_queues, queue_map) = cursor
.iter()
.fold(Ok((queues, BTreeMap::new())), |acc, (port, queue)| {
acc.and_then(|(mut queues, mut bm)| {
port = parse_port(port)?;
queue = parse_queue(queue)?;
queues.remove(queue);
bm.insert(queue, port);
Ok((queues, bm))
})
})?;
let start_port = queue_map.iter().max_by(|(_, v)| v).unwrap_or(base_port + 2);
let (queue_map, _) = unused_queues
.into_iter()
.fold(Ok((queue_map, start_port)), |acc, queue_name| {
acc.and_then(|(mut bm, port_num)| {
write_txn.set(port_num, queue_name)?;
bm.insert(queue_name, port_num);
Ok((bm, port_num + 1))
})
})?;
Ok(queue_map)
})?;
write_txn.commit();
read_txn.commit();
Ok(queue_map)

View file

@ -1,5 +1,5 @@
[package] [package]
name = "jobs-actix" name = "background-jobs-actix"
version = "0.1.0" version = "0.1.0"
authors = ["asonix <asonix@asonix.dog>"] authors = ["asonix <asonix@asonix.dog>"]
edition = "2018" edition = "2018"

View file

@ -1,5 +1,5 @@
[package] [package]
name = "jobs-server-tokio" name = "background-jobs-server-tokio"
version = "0.1.0" version = "0.1.0"
authors = ["asonix <asonix@asonix.dog>"] authors = ["asonix <asonix@asonix.dog>"]
edition = "2018" edition = "2018"

View file

@ -1,5 +1,5 @@
[package] [package]
name = "jobs-tokio" name = "background-jobs-tokio"
version = "0.1.0" version = "0.1.0"
authors = ["asonix <asonix@asonix.dog>"] authors = ["asonix <asonix@asonix.dog>"]
edition = "2018" edition = "2018"