商务网站建设的流程,深圳模板网站建设案例,西安网站建设ruiqinet,公司网站做的一样算不算侵权6近期做项目时遇到一个场景#xff0c;是需要在后端任务执行时动态注入策略。具体而言#xff0c;笔者负责的后端服务#xff0c;可以理解是会在线上服务发布时#xff0c;对服务风险做实时扫描#xff0c;那么这个扫描就需要根据当前线上服务发布上下文#xff0c;匹配对…近期做项目时遇到一个场景是需要在后端任务执行时动态注入策略。具体而言笔者负责的后端服务可以理解是会在线上服务发布时对服务风险做实时扫描那么这个扫描就需要根据当前线上服务发布上下文匹配对应的策略。但这里扫出来的策略都是静态持久化的前端也有产品化的配置而有些业务则希望能够在任务执行时动态注入一些业务自己理解需要的扫描策略不在前端做静态配置。
对于这类定制化需求笔者想到的一种比较低成本实现的方式是这样的
首先这类动态生成的策略还是需要持久化的但不需要在前端做产品化只不过后端查配置的时候能够根据一定的逻辑识别出来哪些策略是静态配置哪些策略是动态生成。具体的识别逻辑怎么做一个解法就回溯到刚进大学学计算机网络那个年代IP是怎么划分的那么动态策略的ID就可以怎样划分。
然后是选数值段这里需要确保db里面id范围和内存里面数据类型是一致的比如mysql的bigint可以对应上Golang里面int64那么就确保不会出现数值的隐式转换。然后我们就可以像IP划分一样给一个非常大的prefix比如0x1234567800000000以及一个mask对应的是0x7FFFFFFF00000000那么只要有一个ID就可以根据prefix和mask判断这个ID是动态策略的还是静态策略的并且有了prefix动态策略ID和落库主键ID也可以相互转化。
最后对于整个系统根据ID去CRUD执行策略的逻辑都需要做变换需要先校验是动态策略还是静态策略然后再走对应的分支逻辑。否则会出现问题。