pub struct MemoryResultBackend { /* private fields */ }Expand description
In-memory result backend for development and testing.
Stores task results in a HashMap protected by a std::sync::Mutex.
This is cheap to construct and requires no external services, but results
are lost when the process exits and the Mutex may become a bottleneck
under very high concurrency. For production use, prefer
RedisResultBackend (from kojin-redis) or
PostgresResultBackend (from kojin-postgres).
Implementations§
Source§impl MemoryResultBackend
impl MemoryResultBackend
Sourcepub fn new() -> MemoryResultBackend
pub fn new() -> MemoryResultBackend
Create a new, empty in-memory result backend.
Trait Implementations§
Source§impl Debug for MemoryResultBackend
impl Debug for MemoryResultBackend
Source§impl Default for MemoryResultBackend
impl Default for MemoryResultBackend
Source§fn default() -> MemoryResultBackend
fn default() -> MemoryResultBackend
Returns the “default value” for a type. Read more
Source§impl ResultBackend for MemoryResultBackend
impl ResultBackend for MemoryResultBackend
Source§fn store<'life0, 'life1, 'life2, 'async_trait>(
&'life0 self,
id: &'life1 TaskId,
result: &'life2 Value,
) -> Pin<Box<dyn Future<Output = Result<(), KojinError>> + Send + 'async_trait>>where
'life0: 'async_trait,
'life1: 'async_trait,
'life2: 'async_trait,
MemoryResultBackend: 'async_trait,
fn store<'life0, 'life1, 'life2, 'async_trait>(
&'life0 self,
id: &'life1 TaskId,
result: &'life2 Value,
) -> Pin<Box<dyn Future<Output = Result<(), KojinError>> + Send + 'async_trait>>where
'life0: 'async_trait,
'life1: 'async_trait,
'life2: 'async_trait,
MemoryResultBackend: 'async_trait,
Store a task result.
Source§fn get<'life0, 'life1, 'async_trait>(
&'life0 self,
id: &'life1 TaskId,
) -> Pin<Box<dyn Future<Output = Result<Option<Value>, KojinError>> + Send + 'async_trait>>where
'life0: 'async_trait,
'life1: 'async_trait,
MemoryResultBackend: 'async_trait,
fn get<'life0, 'life1, 'async_trait>(
&'life0 self,
id: &'life1 TaskId,
) -> Pin<Box<dyn Future<Output = Result<Option<Value>, KojinError>> + Send + 'async_trait>>where
'life0: 'async_trait,
'life1: 'async_trait,
MemoryResultBackend: 'async_trait,
Get a stored result.
Source§fn wait<'life0, 'life1, 'async_trait>(
&'life0 self,
id: &'life1 TaskId,
timeout: Duration,
) -> Pin<Box<dyn Future<Output = Result<Value, KojinError>> + Send + 'async_trait>>where
'life0: 'async_trait,
'life1: 'async_trait,
MemoryResultBackend: 'async_trait,
fn wait<'life0, 'life1, 'async_trait>(
&'life0 self,
id: &'life1 TaskId,
timeout: Duration,
) -> Pin<Box<dyn Future<Output = Result<Value, KojinError>> + Send + 'async_trait>>where
'life0: 'async_trait,
'life1: 'async_trait,
MemoryResultBackend: 'async_trait,
Wait for a result to be available, with timeout.
Source§fn delete<'life0, 'life1, 'async_trait>(
&'life0 self,
id: &'life1 TaskId,
) -> Pin<Box<dyn Future<Output = Result<(), KojinError>> + Send + 'async_trait>>where
'life0: 'async_trait,
'life1: 'async_trait,
MemoryResultBackend: 'async_trait,
fn delete<'life0, 'life1, 'async_trait>(
&'life0 self,
id: &'life1 TaskId,
) -> Pin<Box<dyn Future<Output = Result<(), KojinError>> + Send + 'async_trait>>where
'life0: 'async_trait,
'life1: 'async_trait,
MemoryResultBackend: 'async_trait,
Delete a stored result.
Source§fn init_group<'life0, 'life1, 'async_trait>(
&'life0 self,
group_id: &'life1 str,
total: u32,
) -> Pin<Box<dyn Future<Output = Result<(), KojinError>> + Send + 'async_trait>>where
'life0: 'async_trait,
'life1: 'async_trait,
MemoryResultBackend: 'async_trait,
fn init_group<'life0, 'life1, 'async_trait>(
&'life0 self,
group_id: &'life1 str,
total: u32,
) -> Pin<Box<dyn Future<Output = Result<(), KojinError>> + Send + 'async_trait>>where
'life0: 'async_trait,
'life1: 'async_trait,
MemoryResultBackend: 'async_trait,
Initialize a group with the expected total count.
Source§fn complete_group_member<'life0, 'life1, 'life2, 'life3, 'async_trait>(
&'life0 self,
group_id: &'life1 str,
_task_id: &'life2 TaskId,
result: &'life3 Value,
) -> Pin<Box<dyn Future<Output = Result<u32, KojinError>> + Send + 'async_trait>>where
'life0: 'async_trait,
'life1: 'async_trait,
'life2: 'async_trait,
'life3: 'async_trait,
MemoryResultBackend: 'async_trait,
fn complete_group_member<'life0, 'life1, 'life2, 'life3, 'async_trait>(
&'life0 self,
group_id: &'life1 str,
_task_id: &'life2 TaskId,
result: &'life3 Value,
) -> Pin<Box<dyn Future<Output = Result<u32, KojinError>> + Send + 'async_trait>>where
'life0: 'async_trait,
'life1: 'async_trait,
'life2: 'async_trait,
'life3: 'async_trait,
MemoryResultBackend: 'async_trait,
Mark a group member as complete and return the number of completed members.
Source§fn get_group_results<'life0, 'life1, 'async_trait>(
&'life0 self,
group_id: &'life1 str,
) -> Pin<Box<dyn Future<Output = Result<Vec<Value>, KojinError>> + Send + 'async_trait>>where
'life0: 'async_trait,
'life1: 'async_trait,
MemoryResultBackend: 'async_trait,
fn get_group_results<'life0, 'life1, 'async_trait>(
&'life0 self,
group_id: &'life1 str,
) -> Pin<Box<dyn Future<Output = Result<Vec<Value>, KojinError>> + Send + 'async_trait>>where
'life0: 'async_trait,
'life1: 'async_trait,
MemoryResultBackend: 'async_trait,
Get all results for a group.
Auto Trait Implementations§
impl !Freeze for MemoryResultBackend
impl RefUnwindSafe for MemoryResultBackend
impl Send for MemoryResultBackend
impl Sync for MemoryResultBackend
impl Unpin for MemoryResultBackend
impl UnsafeUnpin for MemoryResultBackend
impl UnwindSafe for MemoryResultBackend
Blanket Implementations§
Source§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
Source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Mutably borrows from an owned value. Read more
Source§impl<T> Instrument for T
impl<T> Instrument for T
Source§fn instrument(self, span: Span) -> Instrumented<Self>
fn instrument(self, span: Span) -> Instrumented<Self>
Source§fn in_current_span(self) -> Instrumented<Self>
fn in_current_span(self) -> Instrumented<Self>
Source§impl<T> IntoEither for T
impl<T> IntoEither for T
Source§fn into_either(self, into_left: bool) -> Either<Self, Self>
fn into_either(self, into_left: bool) -> Either<Self, Self>
Converts
self into a Left variant of Either<Self, Self>
if into_left is true.
Converts self into a Right variant of Either<Self, Self>
otherwise. Read moreSource§fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
Converts
self into a Left variant of Either<Self, Self>
if into_left(&self) returns true.
Converts self into a Right variant of Either<Self, Self>
otherwise. Read more