『贴Builder』
最新文章
热门话题
用户问答
lao人言
「搜索」
PasteSpider
一款更加适合开发人员的微服务(容器)发布管理工具

节省资源

极小的运行资源消耗,还支持一拖多运行,运行内存甚至低至100MB!

安全运行

和业务服务没有层级上的关联,哪怕PasteSpider停止运行也不会影响你的业务服务运行

简单易上手

一键安装,图形操作点点点即可完成操作,附属服务的支持原汁原味,简单易上手

环境隔离

支持拆分多环境运行,工厂,测试两不误,还可以根据环境配置适应不一样的配置信息

适用功能一应俱全

从项目角度进行服务容器管理,支持自动升级,扩容,缩减,状态报表,键值配置,自动路由等

支持Git/Svn代码管理

通过配置支持服务环境级别的自动提交构建,一键提交代码后即可自动发布服务和路由等

PasteTimer软件介绍
尘埃 2023-02-17 1807 98 1
PasteTimer的简单介绍

简介

   PasteTimer 是一个开源且商业免费使用的工具函数库。可以让你非常容易地在 ASP.NET 应用(也可以不在 ASP.NET 应用)中执行多种类型的后台任务,而无需自行定制开发和管理基于 Windows Service 后台任务执行器。且任务信息可以被持久保存。

   支持跨平台部署,建议采用Docker部署

   源代码分享地址: https://gitee.com/pastecode/pastetimer

发布

   从上面的gitee地址中拉取项目代码

   使用VS2022打开,你会看到如下代码结构

   image.png

   项目大概分2个模块,一个客户端模块,一个服务端模块,服务端由于PasteTimer本身有任务报表模块,所以他是有客户端的,所以src文件夹的项目有引用client文件夹的项目。

   设置PasteTimer.HttpApi.Host为启动项目后,右键生成,看看是否生成成功!

   如果你使用mysql数据库

1.使用VS2022打开本项目
	首先在appsettings.json中修改数据库链接字符串,也就是在ConnectionStrings:MainConnectionString后面
	然后在appsettings.json中修改TaskConfig:DataType的值修改为mysql
2.设置PasteTimer.HttpApi.Host为启动项目(就是右侧解决方案里面这个项目加粗了)
3.右键2的这个项目进行生成,看看是否生成成功,成功成功后继续往下执行
4.点击上方的工具栏 --》视图 --》其他窗口 --》程序包管理器控制台
5.在VS工具下方找到这个窗口,然后在这个程序包管理器控制台的里面的 默认项目(J)后面下拉选择项目为src\PasteTimer.EntityFrameworkCore
6.下下方输入如下命令add-migration databaseinit -Context MysqlDbContext
7.如果要同步数据库表结构给数据库,则继续执行命令update-database -Context MysqlDbContext

   如果你使用其他数据库

	则可以跳过上面的步骤,只需要在发布的文件夹中修改appsettings.json中的相关配置,系统在启动的时候会自己检查数据库是否创建,数据库表是否创建,默认账号是否配置等操作。

   PasteTimer和本论坛的一般系统一致采用EF模式,所以在数据库的创建上非常简单,你只要填写你的数据库的连接和配置好数据库的类型即可,系统在第一次部署启动后会自动的去完成数据库的相关配置。

   右键发布,选择发布到文件夹,然后采用默认配置或者基于自己的服务器情况配置进行发布,发布成功后就会得到发布的文件列表。

   部署到服务器后,根据配置打开对应的地址,会看到如下图:

   image.png

   就表示你部署成功啦,然后使用appsettings.json里面的默认账号密码进行登陆。

   image.png

   出去基础的管理账号,推送模块等,这里其实有的信息就是节点信息和任务列表,然后是任务报表和任务记录。

   这里有一个概念,就是任务是需要指定组的,任务所在的组和节点所在的组处于同一个组的时候,表示这些任务发布到这个组的节点去执行。如果任务的组你设置为*的话,那么他会发布给所有的节点执行,这种情况一般是失败的,因为任务都是需要按需去实现的。

实现任务

   要实现一个任务,只需要写一个class继承于IPasteCodeTaskBase

   这里有一个案例,你可以查看PasteTimer.HttpApi.Host的项目中的/Service/RemoteTestHandler.cs的内容

   image.png    

   查看和这个RemoteTeshHandler的相关引用,发觉他在这几个地方有代码

   在项目的入口文件PasteTimerHttpApiHostModule.cs中执行了注入

  context.Services.AddTransient<IPasteCodeTaskBase, RemoteTestHandler>();

   基于上面的特性,你可以实现单例,瞬时等!

执行流程

   查看PasteTimer.HttpApi.Host\Service\SlaveHostedService.cs可以了解到,这个服务执行了轮询任务,命中任务后,根据配置规则,推送任务到任务节点,任务节点执行完成任务后,返回任务结果给服务端(PasteTimer.HttpApi.Host\Controllers\TaskController.cs)

       

评论列表
尘封
这个貌似要下线了,很久没更新了,还是上心的?
尘埃
98 1807 1
快捷注册
最新动态
  • 128.****.164 正在查看 PasteSpider之项目-服务-环境介绍 !
  • 86.****.11 正在查看 在centos7中安装docker !
  • 189.****.120 正在查看 免费SSL证书,自动续期配置,配合PasteSpider的路由策略,用得飞起 !
  • 198.****.232 正在查看 PasteSpider之项目-服务-环境介绍 !
  • 18.****.134 正在查看 在centos7中安装docker !
  • 66.****.43 正在查看 在Centos7中安装Nginx !
  • 180.****.168 正在查看 PasteSpider升级服务器上的一个服务或集群服务 !
  • 114.****.230 正在查看 PasteTemplate之接口的授权实现,非JWT方式 !
  • 180.****.188 正在查看 在Centos7中安装Nginx !
  • 77.****.25 正在查看 【【【PasteSpider的安装--一键拉取镜像】】】 !
  • 90.****.24 正在查看 PasteSpider的测试环境之在Docker中安装centos7并设定SSH的密码 !
欢迎加入QQ讨论群 296245685 更新记录 [PasteSpider]介绍 @2022-2023 PasteCode.cn 版权所有 ICP证 闽ICP备2021013869号-2