可恢复线程
2025年8月17日大约 1 分钟recoverable-spawnspawnrust
一个支持从 panic 中自动恢复的线程,允许线程在发生 panic 后重新启动。这对于在网络和 Web 编程中实现弹性和容错的并发非常有用。
安装
要使用此库,可以运行以下命令:
cargo add recoverable-spawn
使用
recoverable_spawn
use recoverable_spawn::*;
let msg: &str = "test";
let res: SyncSpawnResult = recoverable_spawn(move || {
panic!("{}", msg);
});
let res: SyncSpawnResult = recoverable_spawn_with_error_handle(
move || {
panic!("{}", msg);
},
|err| {
println!("handle error => {}", err);
},
);
recoverable_spawn_with_error_handle
use recoverable_spawn::*;
let msg: &str = "test";
let res: SyncSpawnResult = recoverable_spawn_with_error_handle(
move || {
panic!("{}", msg);
},
|err| {
println!("handle error => {}", err);
},
);
async_recoverable_spawn
use recoverable_spawn::*;
let msg: &str = "test";
let res: AsyncSpawnResult = async_recoverable_spawn(move || async move {
panic!("{}", msg);
});
async_recoverable_spawn_catch
use recoverable_spawn::*;
let msg: &str = "test";
let res: AsyncSpawnResult = async_recoverable_spawn_catch(
move || async move {
panic!("{}", msg);
},
move |err| async move {
println!("handle error => {}", err);
},
);
async_recoverable_spawn_catch_finally
use recoverable_spawn::*;
let msg: &str = "test";
let res: AsyncSpawnResult = async_recoverable_spawn_catch_finally(
move || async move {
panic!("{}", msg);
},
move |err| async move {
println!("handle error => {}", err);
panic!("{}", err);
},
move || async move {
println!("finally");
},
);
许可证
此项目使用 MIT 许可证。详细信息请参见 LICENSE 文件。
贡献
欢迎贡献!请提交问题或拉取请求。
联系
如有任何疑问,请联系作者:[email protected]。