『PasteSpider』
最新文章
贴代码出品
热门话题
用户问答
lao人言
「搜索」
【本期话题】更多
三人寄语更多
没有最好的语言,只有更合适的语言!
点赞:0
由于时间的问题,我们往往会给自己埋坑,等着后续或者下一任来填!
点赞:0
测试没问题的不一定没问题,测试有问题的那肯定有问题!
点赞:2
抛开需求谈架构是无意义的事情!
点赞:0
需求就是系统的千年杀,相爱相杀那种!
点赞:0
谋而后动,往往会让你对自己的代码更具信心!
点赞:1
时间与空间总是在换来换去,鱼和熊掌往往不可同得!
点赞:0
对于答案来说,更重要的是找到答案的这个过程而不是答案本身!
点赞:0
实际遇到的问题往往在那些视频课程中是不会出现的!
点赞:0
抛开需求讲架构,和纸上谈兵无差!
点赞:1
PasteTimer软件介绍
尘埃 2023-02-17 2483 144 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)

       

评论列表
尘封
这个貌似要下线了,很久没更新了,还是上心的?
尘埃
144 2483 1
快捷注册
热门推荐更多
PasteTemplate案例项目
贴代码框架的项目案例,里面有PasteForm的案例代码等;
最新动态
  • 215.****.124 正在查看 PasteSpider之appsettings.json的说明 !
  • 61.****.12 正在查看 PasteSpider之--路由列表-私有仓库-环境配置-的介绍 !
  • 46.****.41 正在查看 PasteSpider升级服务器上的一个服务或集群服务 !
  • 19.****.24 正在查看 Serilog在appsettings.json中的配置 !
  • 204.****.193 正在查看 开发者专用Linux容器部署工具PasteSpider(K8S,Jenkins,CICD)介绍 !
  • 116.****.190 正在查看 Redis的安装 !
  • 47.****.127 正在查看 PasteTimer软件介绍 !
  • 133.****.23 正在查看 Serilog在appsettings.json中的配置 !
  • 216.****.30 正在查看 贴代码框架PasteForm之VS2022右键代码生成器插件介绍 !
  • 117.****.55 正在查看 【PasteForm】最佳CRUD的实现案例项目PasteTemplate解析,包含源码(一) !
  • 116.****.60 正在查看 贴代码框架PasteForm特性介绍之markdown和richtext !
欢迎加入QQ讨论群 296245685 更新记录 [PasteSpider]介绍 @2022-2023 PasteCode.cn 版权所有 ICP证 闽ICP备2021013869号-2