BeetleX进程服务管理组件应用

        有些时候需要在程序中启动和管理其他应用进程,当碰到这样的需求的时候可以通过Process对象来完成;为了让使用和管理更方便在这基础上封装 了BeetleX.ServicesProcess组件,通过组件的管理中心让进程操作更方便,同时还集成了Web套件可直接集成在BeetleX.FastHttpApi中进行Web管理。

        BeetleX.ServicesProcess组件提供了ProcessCenter对象来添加,管理,启动和停止等进程管理功能。具体功能方法如下:

public class ProcessCenter : IDisposable{public ProcessCenter();public ProcessCenter(ILogHandler logHandler);public ServiceManagementConfig Config { get; }public void Add(string name, string file, string path, string args, bool autoStartup = false);public void Add(ProcessInfo info);public void AutoStartup();public void ChangeUser(string admin, string pwd);public void Delete(string id);public void Dispose();public ServiceProcess GetProcess(string id);public void Modify(string id, ProcessInfo info);public void Start(string id);public void StartAll();public void Stop(string id);public void StopAll();}

以上是组件封装的方法,使用起来非常简单。

        接下来主要介绍如何在BeetleX.FastHttpApi中集成它的web管理功能;创建一个控制台项目,引用BeetleX.WebFamily组件;引用后编写以下代码:

class Program{static void Main(string[] args){WebHost host = new WebHost();host.IsWindowsServices = true;WebHost.Title = "Service Management";WebHost.HeaderModel = "beetlex-process-header";WebHost.HomeModel = "beetlex-process-home";WebHost.TabsEnabled = false;host.RegisterComponent<Program>();host.RegisterComponent<BeetleX.ServicesProcess.ProcessCenter>();host.UseFontawesome();host.UseElement(PageStyle.Element);host.Setting(o =>{o.SetDebug();o.Port = 80;o.LogLevel = LogType.Info;});host.Initialize((http, vue, rec) =>{BeetleX.ServicesProcess.WebController controller = new BeetleX.ServicesProcess.WebController();controller.Init(new logHandler(http));http.ActionFactory.Register(controller, new BeetleX.FastHttpApi.ControllerAttribute { BaseUrl = "process" });rec.AddCss("website.css");vue.Debug();});host.Run();}}class logHandler : BeetleX.ServicesProcess.ILogHandler{public logHandler(BeetleX.FastHttpApi.HttpApiServer sever){mServer = sever;}private BeetleX.FastHttpApi.HttpApiServer mServer;public void Error(string message){mServer.GetLog(LogType.Error)?.Log(LogType.Error, null, message);}public void Info(string message){mServer.GetLog(LogType.Info)?.Log(LogType.Info, null, message);}}

启动项目后可以查看启动日志

7b2f84d4b606fbdf1f5200f672a0e6b7.png

接下来就可以通过浏览器访问进程管理页面

c0a5408e7ae33269ca4635d26a64060e.png

如果有需要还可以把当前示例项目发布成windows service

54344c11a2987956f31bf67bbd4b9cdd.png

发布后即可以使用sc命令来创建、启动、停止和删除服务。

完整示例代码

https://github.com/beetlex-io/BeetleX-Samples/tree/master/Web.ServiceManagement

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/297481.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

升级总代分享思路_桃生企业至尊七郎瓷砖新展厅全新升级惊艳亮相

桃生企业至尊七郎瓷砖新展厅惊艳亮相&#xff0c;将艺术和时尚完美融合&#xff0c;即将成为晋江天工建材城的新地标&#xff01;2020年桃生企业逆流升级进行中&#xff0c;全新展厅即将揭幕&#xff01;全新空间 对话年轻轻奢于行&#xff0c;优雅于里&#xff0c;全新一楼的…

烧脑又过瘾!关于c²= b² + a²,你不知道的N个事实

全世界只有3.14 % 的人关注了爆炸吧知识勾股定理你真的懂吗一般人看来&#xff0c;勾股定理只存在于特定的三角形或几何图形中。但实际上&#xff0c;绝大多数人都小看了这条有2600年历史的公式&#xff0c;很多看似不可能的图形&#xff0c;只要涉及到了平方数&#xff0c;勾股…

[snmp++]读取cisco路由交换机信息[一] - 环境搭建

首先从网上下载gn3这个摸拟器以及cisco路由器的bin. 如图&#xff0c;下面的clouds里添加本地连接&#xff0c;这样表示路由器与本机的网卡桥接。即在R2里的接口设置一个与本机的IP地址同一网段。这样局域网的机就可以与R2通信 R2的配置如下 snmp-server community public RO 读…

Dapr + .NET 实战(六)绑定

什么是绑定处理外部事件或调用外部接口的功能就是绑定&#xff0c;绑定可以提供以下好处&#xff1a;避免连接到消息系统 ( 如队列和消息总线 ) 并进行轮询的复杂性聚焦于业务逻辑&#xff0c;而不是如何与系统交互使代码不受 SDK 或外部库的强耦合处理重试和故障恢复Dapr提供了…

对象中multipartfile 空报错_Python 为什么会有个奇怪的“...”对象?

我想到一种特别的写法&#xff0c;很多人会把它当成 pass 语句的替代。在文章发布后&#xff0c;果然有三条留言提及了它。所谓特别的写法就是下面这个&#xff1a;# 用 ... 替代 passdef foo():...它是中文标点符号的半个省略号&#xff0c;也即由英文的 3 个点组成。如果你是…

XP硬盘安装Fedora14图文教程

XP硬盘安装Fedora14图文教程发表于&#xff1a;2010年11月03日 分类&#xff1a;Fedora 26 条评论 5,044 次阅读 昨天是Fedora 14的发布&#xff0c;这篇文章介绍的是如何在windows XP下硬盘安装Fedora 14。 之前写过2篇文章&#xff1a; Linux下硬盘安装Fedora 13&#xff1a;…

用wamper打开php源码_php源码该怎么设置数据库

php源码该怎么设置数据库php源码修改数据库的设置方法&#xff1a;首先在源码中找到程序的配置文件&#xff1b;然后用文本编辑器打开&#xff1b;之后修改数据库地址、数据库名、用户名、连接密码、数据库前缀等参数&#xff1b;最后保存即可。这里以织梦程序为例&#xff0c;…

豆瓣评分9.0+,这几部纪录片看一部少一部!

纪录片是以真实生活为创作素材&#xff0c;以真人真事为表现对象&#xff0c;并对其进行艺术的加工与展现的&#xff0c;以展现真实为本质&#xff0c;并用真实引发人们思考的电影或电视艺术形式。好的纪录片就像打开了一扇新世界的大门&#xff0c;让我们了解更多世界的奇妙之…

记一次 .NET 某纺织工厂 MES系统 API 挂死分析

一&#xff1a;背景 1. 讲故事这个月中旬&#xff0c;有位朋友加我wx求助他的程序线程占有率很高&#xff0c;寻求如何解决&#xff0c;截图如下&#xff1a;说实话&#xff0c;和不同行业的程序员聊天还是蛮有意思的&#xff0c;广交朋友&#xff0c;也能扩大自己的圈子&#…

python求斜边上的高_直角三角形斜边上的高怎么求

展开全部 直角三角形斜边32313133353236313431303231363533e78988e69d8331333431336666上的高的求法&#xff1a; 1. 直角三角形斜边上的高等于两条直角边的乘积除以斜边的商。 例如&#xff1a;直角三角形的两个直角边分别为a和b&#xff0c;斜边为c&#xff0c;那么&#xff…

使用identity+jwt保护你的webapi(一)——identity基础配置

前言用户模块几乎是每个系统必备的基础功能&#xff0c;如果每次开发一个新项目时都要做个用户模块&#xff0c;确实非常无聊。好在asp.net core给我们提供了Identity&#xff0c;使用起来也是比较方便&#xff0c;如果对用户这块需求不是非常个性化的话&#xff0c;identity是…

年轻人不能“饥渴”太久,否则……

全世界只有3.14 % 的人关注了爆炸吧知识文 / 较高端人类来源 / 较高端人类&#xff08;ID&#xff1a;xinji656&#xff09;转发到朋友圈健康生活从饮水做起本文来源于微信公众号&#xff1a;较高端人类&#xff08;ID&#xff1a;xinji656&#xff09;我们只研究那些你感兴趣的…

Redis集群(一):集群搭建

2019独角兽企业重金招聘Python工程师标准>>> 概述 这里只记录操作步骤和集群测试&#xff0c;保证快速搭建集群环境。具体原理请查阅官方文档&#xff08;中文版&#xff09;&#xff1a; http://www.redis.cn/topics/cluster-spec.html 集群容灾&#xff1a;Redis集…

python优惠券机器人_python实现机器人卡牌

介绍 这个例子主要利用turtle库实现根据输入动态展示不同机器人的图像和属性信息。 代码部分非原创只是做了些许修改和整理使得更易阅读。 图片和文件资源请访问git仓库获取&#xff1a;链接地址 涉及以下知识点&#xff1a; 1.文件读取 2.字典 3.turtle库的使用 4.控制语句 实…

使用identity+jwt保护你的webapi(二)——获取jwt token

前言上一篇已经介绍了identity在web api中的基本配置&#xff0c;本篇来完成用户的注册&#xff0c;登录&#xff0c;获取jwt token。开始开始之前先配置一下jwt相关服务。配置JWT 首先NuGet安装包&#xff1a;<PackageReference Include"Microsoft.AspNetCore.Authent…

假如,绿茶婊的目标变成女生......

1 假如绿茶的目标是女生▼2 也不知道我爹今晚回去要迎接怎样的狂风暴雨▼3 这撞衫撞得有点尴尬▼4 我是一个小胖子没事玩玩小肚子▼5 看起来也不傻可能就是单纯的有猫病▼6 在严肃场合努力憋笑的我▼7 妈妈&#xff1a;叫你吃饭不吃饭&#xff01;三请四请才肯来&#x…

docker 启动mysql root用户_Docker-Compose搭建Wordpress博客系统

环境&#xff1a;CentOS 7.5Docker 20.10.2Docker-Compose 1.25.5[rootlocalhost ~]# cat /etc/redhat-releaseCentOS Linux release 7.5.1804 (Core)[rootlocalhost ~]# docker version # Docker版本Client: Docker Engine - Community Version: 20.10.2…

跪着看完这14个机械动图

全世界只有3.14 % 的人关注了爆炸吧知识神奇的机械原理动态GIF图&#xff0c;很有意思&#xff0c;或许你能学到点什么&#xff01;↑↑时间书写机器↑↑↑↑鸡尾酒制作机↑↑↑↑移树机↑↑↑↑扔球机&#xff08;用于陪狗玩&#xff09;↑↑↑↑甜甜圈抓取机↑↑↑↑玻璃瓶加…

sql 百分数_SQL经典50题笔记

SQL语句执行顺序(8) SELECT (9)DISTINCT<Select_list> (1) FROM <left_table> (3) <join_type>JOIN<right_table> (2) ON<join_condition> (4) WHERE<where_condition> (5) GROUP BY<group_by_list> (6) WITH {CUBE|ROLLUP} (7) HAV…

这种秀恩爱你见过吗?

1 棒棒哒&#xff0c;做的好2 程序员的日常3 一群单身鱼都看呆了4 最佳COS5 自拍达喵6 为什么你们能长这么大&#xff1f;懵逼了7 请用一个词形容这张图你点的每个赞&#xff0c;我都认真当成了喜欢