我们在开发中经常遇到对方的接口请求有频率限制,比如当前接口每秒的请求不能大于100,不能大于1000,对于这样的,我们作为请求方,如何做限定?
安之若素
2025-06-13 10:55
稳定性啊!!!
在我看来就是如何更大程度的保护你的服务的运行
1.任务完成后,你直接停止PasteSpider,你的服务会继续运行,不受干扰!
至于升级等过程中,可能就会出现其他问题了,比如升级容器到一半,假设启动了8个容器
你突然停止了,那么nginx的upstream可能记录的容器数量是5个,那么还有3个就是游离状态!
2.内部任务采用线性模式,为啥要采用线性模式呢?我是从多个方面考虑的
a.我们部署服务的时候,很少情况要并发的,一般是有顺序的,比如redis-->rabbitmq-->db-->api
b.任务之间可能存在关联,比如构建升级,在PasteSpider中是拆分成2个任务的,先要执行构建镜像,然后才是升级,这明显的是线性的,前面没完成,后面不能干活的!
c.任务采用一次性模式,比如说你在某一个任务卡住了,这里有多方面的原因哈,最大可能就是网络的问题,比如打包镜像的时候一致打包卡住了,要么等待超时完成,要么,你可以直接重启PasteSpider!
注意重启后,在重启之前创建的任务都将丢弃
迷于归途
2025-06-13 10:55
为啥要丢弃呢?因为你可能被某一个任务卡死了,如果重启后,又去执行之前的待完成任务,那么可能进入死循环
而直接丢弃的好处就是,你可以重新创建任务!!!
还有一个关键点和设计模式有关,PasteSpider的任务模式是,创建任务后,推送任务ID给队列,消耗队列完成任务后,从队列中获取下一个任务,而不是每隔几秒去数据库扫描未完成的任务,可以说这个设计模式是为了节省资源,也就是PasteSpider的设计初衷!
不用选,后面都是PasteApeart,他们其实是一个东西
看版本,PasteApeart.Helper 26.9.2之后,就按照基类前面的顺序了,也符合阅读顺序,当然你可以使用PasteSort再次改变他!
1.语言吧,这本身只是一个开发思想,其实其他语言也可以用,不过最优雅实现的还是.NET
2.特别适用于需要表单,表格的系统,所以哪些EMS,CRM,ERP等都合适
3.扩展,比如这个思想,你也可以应用于C/S,理论上也是可以的
4.这个主要针对的是管理端,附带UI的CRUD,也就是说对于业务代码,是没影响的!
5.可能入门会麻烦点,毕竟有接近100个PasteXXXX特性要了解,幸运的是都是Paste开头,官方的也支持,比如MaxLength,Required等!