当前位置: 首页 > news >正文

【极客日常】后端任务动态注入执行策略的一种技术实现

近期做项目时遇到一个场景,是需要在后端任务执行时动态注入策略。具体而言,笔者负责的后端服务,可以理解是会在线上服务发布时,对服务风险做实时扫描,那么这个扫描就需要根据当前线上服务发布上下文,匹配对应的策略。但这里扫出来的策略都是静态持久化的,前端也有产品化的配置,而有些业务则希望能够在任务执行时,动态注入一些业务自己理解需要的扫描策略,不在前端做静态配置。

对于这类定制化需求,笔者想到的一种比较低成本实现的方式是这样的:

首先这类动态生成的策略还是需要持久化的,但不需要在前端做产品化,只不过后端查配置的时候,能够根据一定的逻辑识别出来哪些策略是静态配置,哪些策略是动态生成。具体的识别逻辑怎么做,一个解法就回溯到刚进大学学计算机网络那个年代,IP是怎么划分的,那么动态策略的ID就可以怎样划分。

然后是选数值段,这里需要确保db里面id范围和内存里面数据类型是一致的,比如mysql的bigint可以对应上Golang里面int64,那么就确保不会出现数值的隐式转换。然后我们就可以像IP划分一样,给一个非常大的prefix(比如0x1234567800000000)以及一个mask(对应的是0x7FFFFFFF00000000),那么只要有一个ID,就可以根据prefix和mask判断这个ID是动态策略的还是静态策略的,并且有了prefix,动态策略ID和落库主键ID也可以相互转化。

最后对于整个系统,根据ID去CRUD执行策略的逻辑都需要做变换,需要先校验是动态策略还是静态策略,然后再走对应的分支逻辑。否则会出现问题。

http://www.dtcms.com/a/275355.html

相关文章:

  • 27.【.NET8 实战--孢子记账--从单体到微服务--转向微服务】--单体转微服务--币种服务(一)
  • .net机器学习框架:ML.NET数据处理
  • 【嵌入式硬件实例】-555定时器实现倍压电路
  • 钉钉小程序开发环境配置与前端开发指南
  • 计算机毕业设计ssm基于SSM的萌宠交流平台 基于SSM的毛孩子互动分享与领养系统 SSM架构下的宠物社交·商城·救助一体化平台
  • Mac M芯片安装RocketMQ服务
  • 【Docker基础】Dockerfile指令速览:基础常用指令详解
  • 【STM32实践篇】:最小系统组成
  • 实战指南:用pmap+gdb排查Linux进程内存问题
  • 9.4 自定义SMC服务开发
  • springboot使用@Validated不起作用
  • 加法器学习
  • AI图像修复工具CodeFormer实测:马赛克去除与画质增强效果评测
  • Java使用Langchai4j接入AI大模型的简单使用(四)--整合Springboot
  • Window/linux获得程序运行目录C++
  • C++ Map 和 Set 详解:从原理到实战应用
  • 基于 Python 的数据分析技术综述
  • 2025 全球酒店用品厂家竞争力排行榜发布:扬州卓韵领衔,布草工厂实力重塑行业格局
  • 未来软件开发的新方向:从工程到智能的深度演进
  • 利用scale实现图片放大案例
  • 商业机密保卫战:如何让离职员工带不走的客户资源?
  • TCP的socket编程
  • 【unity实战】在Unity实现低耦合可复用的交互系统
  • 科技驯服烈日狂沙:中东沙漠农场的光储革命
  • SQL server之版本的初认知
  • 江协科技STM32入门教程——通信接口
  • 希尔排序和选择排序及计数排序的简单介绍
  • 数据湖和数据库对比
  • 笔记-分布式计算基础
  • 可穿戴智能硬件在国家安全领域的应用