首页 > 其他分享 >rust服务控制之使用rs-svc(rust svc)实现优雅退出

rust服务控制之使用rs-svc(rust svc)实现优雅退出

时间:2024-06-07 18:11:42浏览次数:17  
标签:Ok rs svc rust anyhow fn

使用rs-svc实现rust程序的优雅退出.

引用依赖

Cargo.toml中添加rs-svc和anyhow库:

[package]
name = "svctest"
version = "0.1.0"
edition = "2021"

# See more keys and their definitions at https://doc.rust-lang.org/cargo/reference/manifest.html

[dependencies]
rs-svc="0.1"
anyhow = "1.0"

实现接口

在自己的服务中实现Service接口:

use rs_svc::svc::service::Service;

struct App;

impl Service for App {
    fn init(&self) -> anyhow::Result<()> {
        println!("init");
        Ok(())
    }
    fn start(&self) -> anyhow::Result<()> {
        println!("start");
        Ok(())
    }
    fn stop(&self) -> anyhow::Result<()> {
        println!("stop");
        Ok(())
    }
}

fn main() {
    let app = App;
    rs_svc::svc::service::run(&app).unwrap()
}

控制台输出:

标签:Ok,rs,svc,rust,anyhow,fn
From: https://www.cnblogs.com/f-society/p/18237691

相关文章

  • 用 Sentence Transformers v3 训练和微调嵌入模型
    SentenceTransformers是一个Python库,用于使用和训练各种应用的嵌入模型,例如检索增强生成(RAG)、语义搜索、语义文本相似度、释义挖掘(paraphrasemining)等等。其3.0版本的更新是该工程自创建以来最大的一次,引入了一种新的训练方法。在这篇博客中,我将向你展示如何使用它......
  • SVC推理参数说明
    WebUI参数说明选择主模型文件主模型配套的配置文件主模型配套的扩散模型扩散模型配套的配置文件聚类模型或特征检索。(可选)        聚类模型:需单独训练聚类模型,其可以减小音色泄露,使得音色更接近于原声(效果不是很明显)。单纯的完全使用聚类模型,会导致出现口齿不......
  • SVC数据集准备及预处理
      此文档主要为SVC数据集预处理的详细步骤。音源准备时长要求:训练音源需准备至少20min以上,最好是1-2小时的数据。注:由于歌曲中歌手并不会整首歌都在演唱,因此这里的时长说的是歌手实际演唱的时长,不包括前奏、间奏等无歌声的部分。质量要求:训练音源尽量使用高保真及以上品......
  • Diffusers代码学习: IP-Adapter(续)
    但是IP-Adapter不仅可以通过文生图的方式,也可以通过图生图的方式生成目标图片,就无需使用提示词。只不过同上一篇所述,底层的逻辑和图生图是完全不同的。# 以下代码为程序运行进行设置,使用图生图的自动管道,importosos.environ["HF_ENDPOINT"]="https://hf-mirror.com" ......
  • 每日AIGC最新进展(21):清华大学提出从人体运动和视频中理解人类行为MotionLLM、武汉大
    DiffusionModels专栏文章汇总:入门与实战MotionLLM:UnderstandingHumanBehaviorsfromHumanMotionsandVideos本研究提出了一种名为MotionLLM的新型框架,旨在通过结合视频和运动序列(如SMPL序列)的多模态数据,利用大型语言模型(LLMs)的能力来理解人类行为。与以往只针对视......
  • Rust OO:多态与继承
    https://www.phodal.com/blog/rust-oo-notes/学习编程语言的最好方式最反复练习。最近在用Rust重写VSCode-Textmate库:scie。原有的代码中,大量地使用了OO相关的东西,而Rust要实现OO也需要一些奇技淫巧,而我本身对Rust也不是非常熟练,所以我写了这一篇笔记来记录如何实......
  • Lru在Rust中的实现, 源码解析
    LRU(LeastRecentlyUsed)是一种常用的页面置换算法,其核心思想是选择最近最久未使用的页面予以淘汰。LRU算法原理基本思想:LRU算法基于一个假设,即如果一个数据在最近一段时间没有被访问到,那么在将来它被访问的可能性也很低。因此,当缓存空间不足时,算法会选择最久未使用的数据进行......
  • 【已解决】Python报错 ERROR: Could not find a version that satisfies the requirem
    本文摘要:本文已解决ERROR:Couldnotfindaversionthatsatisfiestherequirement的相关报错问题,并总结提出了几种可用解决方案。同时结合人工智能GPT排除可能得隐患及错误。......
  • 活动预热丨在 AGI Playground 2024 遇见一群 RTE+AI 的 Builders
    6月22、23日,北京。 AGIPlayground2024,这个夏日最火热的AGI盛会。 王小川、杨植麟等AGI创业者悉数参加。 RTE开发者社区的builders和RTEOpenDay也将在现场! 我们将为大家呈现两大板块:01实时开发挑战WorkshopRTE开发者社区将联合「零一万物」发起w......
  • Error connecting with SSL. error:1409442E:SSL routines:SSL3_READ_BYTES:tlsv1 ale
    环境Windows11Pro23H2Delphi12Version29.0.50491.5718CentOSLinuxrelease7.9.2009(Core)nginxversion:nginx/1.20.1发生的问题ProjectProjectName.exeraisedexceptionclassEIdOSSLUnderlyingCryptoErrorwithmessage'ErrorconnectingwithSSL.e......