当前位置: 首页 > 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.lryc.cn/news/586402.html

相关文章:

  • R 语言绘制 10 种精美火山图:转录组差异基因可视化
  • 算法第三十一天:贪心算法part05(第八章)
  • CCF CSP第一轮认证一本通
  • 【理念●体系】模板规范篇:打造可标准化复用的 AI 项目骨架
  • 一分钟快速了解Apache
  • Redis集群会有写操作丢失吗?为什么?
  • 动态规划基本操作
  • 从LLM到VLM:视觉语言模型的核心技术与Python实现
  • FastAdmin项目开发三
  • (LeetCode 面试经典 150 题 )3. 无重复字符的最长子串 (哈希表+双指针)
  • 回归(多项式回归)
  • 算法练习6-大数乘法(高精度乘法)
  • Linux系统中部署Redis详解
  • (C++)STL:list认识与使用全解析
  • OpenEuler操作系统测试USB摄像头
  • The Black Heart
  • AOSP Settings模块问题初窥
  • day03-链表part1
  • C++类模版1
  • HTTP和HTTPS部分知识点
  • JAVA开发
  • 【数据结构初阶】--顺序表(三)
  • 广东省省考备考(第四十三天7.12)——数量(第四节课)
  • kettle从入门到精通 第101课 ETL之kettle DolphinScheduler调度kettle
  • 亚矩阵云手机:重构物流供应链,让跨境包裹“飞”得更快更准
  • 配置驱动开发:初探零代码构建嵌入式软件配置工具
  • ESP32使用freertos更新lvgl控件内容
  • TDengine 使用最佳实践(1)
  • Cell2location maps fine-grained cell types in spatial transcriptomics 文章解析
  • 全局唯一id生成