mirror of
https://git.asonix.dog/asonix/background-jobs.git
synced 2024-11-22 03:51:00 +00:00
Clean examples
This commit is contained in:
parent
a5b2a3e8dd
commit
ee5c5723c9
5 changed files with 19 additions and 29 deletions
|
@ -11,7 +11,7 @@
|
||||||
//! used. By default, the number of cores of the running system is used.
|
//! used. By default, the number of cores of the running system is used.
|
||||||
//!
|
//!
|
||||||
//! ### Example
|
//! ### Example
|
||||||
//! ```rust
|
//! ```rust,ignore
|
||||||
//! use actix::System;
|
//! use actix::System;
|
||||||
//! use background_jobs::{Backoff, Job, MaxRetries, Processor, ServerConfig, WorkerConfig};
|
//! use background_jobs::{Backoff, Job, MaxRetries, Processor, ServerConfig, WorkerConfig};
|
||||||
//! use failure::Error;
|
//! use failure::Error;
|
||||||
|
|
|
@ -5,7 +5,7 @@ version = "0.2.0"
|
||||||
license-file = "../LICENSE"
|
license-file = "../LICENSE"
|
||||||
authors = ["asonix <asonix@asonix.dog>"]
|
authors = ["asonix <asonix@asonix.dog>"]
|
||||||
repository = "https://git.asonix.dog/Aardwolf/background-jobs"
|
repository = "https://git.asonix.dog/Aardwolf/background-jobs"
|
||||||
readme = "README.md"
|
readme = "../README.md"
|
||||||
edition = "2018"
|
edition = "2018"
|
||||||
|
|
||||||
# See more keys and their definitions at https://doc.rust-lang.org/cargo/reference/manifest.html
|
# See more keys and their definitions at https://doc.rust-lang.org/cargo/reference/manifest.html
|
||||||
|
|
|
@ -1,15 +0,0 @@
|
||||||
# Jobs Sled
|
|
||||||
_a Sled storage backend for background-jobs_
|
|
||||||
|
|
||||||
This is the default storage backend for the Background Jobs library based on [Sled](https://github.com/spacejam/sled). It also servers as a reference implementation for storage backends.
|
|
||||||
|
|
||||||
### License
|
|
||||||
This work is licensed under the Cooperative Software License. This is not a Free Software
|
|
||||||
License, but may be considered a "source-available License." For most hobbyists, self-employed
|
|
||||||
developers, worker-owned companies, and cooperatives, this software can be used in most
|
|
||||||
projects so long as this software is distributed under the terms of the CSL. For more
|
|
||||||
information, see the provided LICENSE file. If none exists, the license can be found online
|
|
||||||
[here](https://lynnesbian.space/csl/). If you are a free software project and wish to use this
|
|
||||||
software under the terms of the GNU Affero General Public License, please contact me at
|
|
||||||
[asonix@asonix.dog](mailto:asonix@asonix.dog) and we can sort that out. If you wish to use this
|
|
||||||
project under any other license, especially in proprietary software, the answer is likely no.
|
|
|
@ -4,12 +4,12 @@
|
||||||
//! _An implementation of the Background Jobs Storage trait based on the Sled embedded database_
|
//! _An implementation of the Background Jobs Storage trait based on the Sled embedded database_
|
||||||
//!
|
//!
|
||||||
//! ### Usage
|
//! ### Usage
|
||||||
//! ```rust
|
//! ```rust,ignore
|
||||||
//! use background_jobs::{ServerConfig, sled_storage::Storage};
|
//! use background_jobs::{ServerConfig, sled_storage::Storage};
|
||||||
//! use sled_extensions::{ConfigBuilder, Db};
|
//! use sled_extensions::{ConfigBuilder, Db};
|
||||||
//!
|
//!
|
||||||
//! let db = Db::start(ConfigBuilder::default().temporary(true).build())?;
|
//! let db = Db::start(ConfigBuilder::default().temporary(true).build())?;
|
||||||
//! let storage = Storagege::new(db)?;
|
//! let storage = Storage::new(db)?;
|
||||||
//! let queue_handle = ServerConfig::new(storage).thread_count(8).start();
|
//! let queue_handle = ServerConfig::new(storage).thread_count(8).start();
|
||||||
//! ```
|
//! ```
|
||||||
|
|
||||||
|
|
25
src/lib.rs
25
src/lib.rs
|
@ -92,11 +92,15 @@
|
||||||
//! }
|
//! }
|
||||||
//! }
|
//! }
|
||||||
//!
|
//!
|
||||||
//! impl Job<MyState> for MyJob {
|
//! impl Job for MyJob {
|
||||||
//! fn run(self, state: MyState) -> Box<dyn Future<Item = (), Error = Error> + Send> {
|
//! type Processor = MyProcessor;
|
||||||
|
//! type State = MyState;
|
||||||
|
//! type Future = Result<(), Error>;
|
||||||
|
//!
|
||||||
|
//! fn run(self, state: Self::State) -> Self::Future {
|
||||||
//! info!("{}: args, {:?}", state.app_name, self);
|
//! info!("{}: args, {:?}", state.app_name, self);
|
||||||
//!
|
//!
|
||||||
//! Box::new(Ok(()).into_future())
|
//! Ok(())
|
||||||
//! }
|
//! }
|
||||||
//! }
|
//! }
|
||||||
//! ```
|
//! ```
|
||||||
|
@ -113,7 +117,7 @@
|
||||||
//! #[derive(Clone, Debug)]
|
//! #[derive(Clone, Debug)]
|
||||||
//! pub struct MyProcessor;
|
//! pub struct MyProcessor;
|
||||||
//!
|
//!
|
||||||
//! impl Processor<MyState> for MyProcessor {
|
//! impl Processor for MyProcessor {
|
||||||
//! // The kind of job this processor should execute
|
//! // The kind of job this processor should execute
|
||||||
//! type Job = MyJob;
|
//! type Job = MyJob;
|
||||||
//!
|
//!
|
||||||
|
@ -157,8 +161,9 @@
|
||||||
//! ##### Main
|
//! ##### Main
|
||||||
//! ```rust,ignore
|
//! ```rust,ignore
|
||||||
//! use actix::System;
|
//! use actix::System;
|
||||||
//! use background_jobs::{ServerConfig, SledStorage, WorkerConfig};
|
//! use background_jobs::{ServerConfig, sled_storage::Storage, WorkerConfig};
|
||||||
//! use failure::Error;
|
//! use failure::Error;
|
||||||
|
//! use sled::Db;
|
||||||
//!
|
//!
|
||||||
//! fn main() -> Result<(), Error> {
|
//! fn main() -> Result<(), Error> {
|
||||||
//! // First set up the Actix System to ensure we have a runtime to spawn jobs on.
|
//! // First set up the Actix System to ensure we have a runtime to spawn jobs on.
|
||||||
|
@ -166,16 +171,16 @@
|
||||||
//!
|
//!
|
||||||
//! // Set up our Storage
|
//! // Set up our Storage
|
||||||
//! let db = Db::start_default("my-sled-db")?;
|
//! let db = Db::start_default("my-sled-db")?;
|
||||||
//! let storage = SledStorage::new(db)?;
|
//! let storage = Storage::new(db)?;
|
||||||
//!
|
//!
|
||||||
//! // Start the application server. This guards access to to the jobs store
|
//! // Start the application server. This guards access to to the jobs store
|
||||||
//! let queue_handle = ServerConfig::new(storage).start();
|
//! let queue_handle = ServerConfig::new(storage).start();
|
||||||
//!
|
//!
|
||||||
//! // Configure and start our workers
|
//! // Configure and start our workers
|
||||||
//! let mut worker_config = WorkerConfig::new(move || MyState::new("My App"));
|
//! WorkerConfig::new(move || MyState::new("My App"))
|
||||||
//! worker_config.register(MyProcessor);
|
//! .register(MyProcessor)
|
||||||
//! worker_config.set_processor_count(DEFAULT_QUEUE, 16);
|
//! .set_processor_count(DEFAULT_QUEUE, 16)
|
||||||
//! worker_config.start(queue_handle.clone());
|
//! .start(queue_handle.clone());
|
||||||
//!
|
//!
|
||||||
//! // Queue our jobs
|
//! // Queue our jobs
|
||||||
//! queue_handle.queue::<MyProcessor>(MyJob::new(1, 2))?;
|
//! queue_handle.queue::<MyProcessor>(MyJob::new(1, 2))?;
|
||||||
|
|
Loading…
Reference in a new issue