[−][src]Struct actix::System
System is a runtime manager.
Implementations
impl System
[src]
pub fn builder() -> Builder
[src]
Build a new system with a customized tokio runtime.
This allows to customize the runtime. See struct level docs on
Builder
for more information.
pub fn new<T>(name: T) -> SystemRunner where
T: Into<String>,
[src]
T: Into<String>,
Create new system.
This method panics if it can not create tokio runtime
pub fn run_in_tokio<T>(
name: T,
local: &LocalSet
) -> impl Future<Output = Result<(), Error>> where
T: Into<String>,
[src]
name: T,
local: &LocalSet
) -> impl Future<Output = Result<(), Error>> where
T: Into<String>,
Create new system using provided tokio LocalSet
.
This method panics if it can not spawn system arbiter
Note: This method uses provided LocalSet
to create a System
future only.
All the Arbiter
s will be started in separate threads using their own tokio Runtime
s.
It means that using this method currently it is impossible to make actix-rt
work in the
alternative tokio
Runtime
s (e.g. provided by tokio_compat
).
Examples
use tokio::{runtime::Runtime, task::LocalSet}; use actix_rt::System; use futures_util::future::try_join_all; async fn run_application() { let first_task = tokio::spawn(async { // ... }); let second_task = tokio::spawn(async { // ... }); try_join_all(vec![first_task, second_task]) .await .expect("Some of the futures finished unexpectedly"); } let runtime = tokio::runtime::Builder::new_multi_thread() .worker_threads(2) .enable_all() .build() .unwrap(); let actix_system_task = LocalSet::new(); let sys = System::run_in_tokio("actix-main-system", &actix_system_task); actix_system_task.spawn_local(sys); let rest_operations = run_application(); runtime.block_on(actix_system_task.run_until(rest_operations));
pub fn attach_to_tokio<Fut, R>(
name: impl Into<String>,
runtime: Runtime,
rest_operations: Fut
) -> R where
Fut: Future<Output = R>,
[src]
name: impl Into<String>,
runtime: Runtime,
rest_operations: Fut
) -> R where
Fut: Future<Output = R>,
Consume the provided tokio Runtime and start the System
in it.
This method will create a LocalSet
object and occupy the current thread
for the created System
exclusively. All the other asynchronous tasks that
should be executed as well must be aggregated into one future, provided as the last
argument to this method.
Note: This method uses provided Runtime
to create a System
future only.
All the Arbiter
s will be started in separate threads using their own tokio Runtime
s.
It means that using this method currently it is impossible to make actix-rt
work in the
alternative tokio
Runtime
s (e.g. provided by tokio_compat
).
Arguments
name
: Name of the Systemruntime
: A tokio Runtime to run the system in.rest_operations
: A future to be executed in the runtime along with the System.
Examples
use tokio::runtime::Runtime; use actix_rt::System; use futures_util::future::try_join_all; async fn run_application() { let first_task = tokio::spawn(async { // ... }); let second_task = tokio::spawn(async { // ... }); try_join_all(vec![first_task, second_task]) .await .expect("Some of the futures finished unexpectedly"); } let runtime = tokio::runtime::Builder::new_multi_thread() .worker_threads(2) .enable_all() .build() .unwrap(); let rest_operations = run_application(); System::attach_to_tokio("actix-main-system", runtime, rest_operations);
pub fn current() -> System
[src]
Get current running system.
pub fn is_set() -> bool
[src]
Check if current system is set, i.e., as already been started.
pub fn with_current<F, R>(f: F) -> R where
F: FnOnce(&System) -> R,
[src]
F: FnOnce(&System) -> R,
Execute function with system reference.
pub fn id(&self) -> usize
[src]
System id
pub fn stop(&self)
[src]
Stop the system
pub fn stop_with_code(&self, code: i32)
[src]
Stop the system with a particular exit code.
pub fn stop_on_panic(&self) -> bool
[src]
Return status of 'stop_on_panic' option which controls whether the System is stopped when an uncaught panic is thrown from a worker thread.
pub fn arbiter(&self) -> &Arbiter
[src]
System arbiter
pub fn run<F>(f: F) -> Result<(), Error> where
F: FnOnce(),
[src]
F: FnOnce(),
This function will start tokio runtime and will finish once the
System::stop()
message get called.
Function f
get called within tokio runtime context.
Trait Implementations
Auto Trait Implementations
impl !RefUnwindSafe for System
[src]
impl Send for System
[src]
impl Sync for System
[src]
impl Unpin for System
[src]
impl !UnwindSafe for System
[src]
Blanket Implementations
impl<T> Any for T where
T: 'static + ?Sized,
[src]
T: 'static + ?Sized,
impl<T> Borrow<T> for T where
T: ?Sized,
[src]
T: ?Sized,
impl<T> BorrowMut<T> for T where
T: ?Sized,
[src]
T: ?Sized,
pub fn borrow_mut(&mut self) -> &mut Tⓘ
[src]
impl<T> From<T> for T
[src]
impl<T, U> Into<U> for T where
U: From<T>,
[src]
U: From<T>,
impl<T> ToOwned for T where
T: Clone,
[src]
T: Clone,
type Owned = T
The resulting type after obtaining ownership.
pub fn to_owned(&self) -> T
[src]
pub fn clone_into(&self, target: &mut T)
[src]
impl<T, U> TryFrom<U> for T where
U: Into<T>,
[src]
U: Into<T>,
type Error = Infallible
The type returned in the event of a conversion error.
pub fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>
[src]
impl<T, U> TryInto<U> for T where
U: TryFrom<T>,
[src]
U: TryFrom<T>,
type Error = <U as TryFrom<T>>::Error
The type returned in the event of a conversion error.
pub fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>
[src]
impl<V, T> VZip<V> for T where
V: MultiLane<T>,
V: MultiLane<T>,