6个版本 (3个重大更新)
0.4.0 | 2020年12月21日 |
---|---|
0.3.0 | 2019年12月9日 |
0.2.1 | 2019年12月9日 |
0.2.0 | 2019年10月28日 |
0.1.1 | 2019年10月6日 |
#475 in 进程宏
每月52次下载
14KB
73 行
Fort
Fort是Bastion的进程宏属性crate。
使用方法
[dependencies]
fort = "0.4"
bastion = "0.4"
您可以直接使用fort将工作负载加载到根管理员上:
#[fort::root]
async fn main(_: BastionContext) -> Result<(), ()> {
println!("Running in Bastion runtime!");
Ok(())
}
使用fort
使您的程序具有容错能力
#[fort::root]
async fn main(_: BastionContext) -> Result<(), ()> {
loop {
println!("Undying main!");
panic!("Error")
}
}
您想启动多个进程
#[fort::root(redundancy = 10)]
async fn main(_: BastionContext) -> Result<(), ()> {
loop {
println!("Undying main!");
panic!("Error")
}
}
示例TCP服务器
use std::io::Write;
use std::net::TcpListener;
#[fort::root]
async fn main(_: BastionContext) -> Result<(), ()> {
let listener = TcpListener::bind("127.0.0.1:2278").unwrap();
println!("TCP server started at 127.0.0.1:2278");
for stream in listener.incoming() {
thread::spawn(|| {
let mut stream = stream.unwrap();
stream.write_all(b"Hello World\r\n").unwrap();
panic!("Fail in thread!");
});
panic!("Fail in event loop");
}
Ok(())
}
依赖项
~1.5MB
~35K SLoC