Files
getDomain/docs/test.md
Your Name 7cbde2aa78 d
2026-04-22 14:13:21 +08:00

114 lines
5.6 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
开个定时任务不停扫数据库,未检测的 快到期删除的,全部扫出来推送给注册任务队列;
注册检测:筛选出可以注册的,这个完成后,不管成功失败,返会标准化结果给 controller告诉他这个流程我走完了如果是外部原因导致未能出结果就失败的controller 会重新投入注册检测,更新数据库,如果是成功的,把对应的状态更新数据库,跟新注册状态;
controller 收到返回注册完成后, 以标准化格式下一步任务队列里面 等worker 来啦取,
worker 只负责去controller 啦取的任务处理任务根据任务标准标识安排对于的函数处理所以woker只复制啦和跑我没任务了我很有空我就去controller 获取任务,只要你给,我就跑,跑完返回结果给你;
controller 在收到worker的啦取请求后按后台勾选的配置任务队列按顺序返回给woker不是随便返回
controller 返回任务时,要同时完成认领
也就是:
标记该 task 已分配给某个 worker
进入 running 状态
设置超时 TTL
超时未回传则回收重投
否则会出现:
worker 拿了任务挂了
controller 以为还在跑
任务永远丢了
xx检测当前 xx 步骤执行并返回判定结果这个完成后不管成功失败返会标准化结果给controller告诉他这个xx流程我走完了如果是外部原因导致失败的还没有出结果的非业务判定不通过被跑到为黑名单的controller 会重新投入当前xx任务队列如果名中黑名单直接跟新黑名单状态不在分发到后面所有步骤更新数据库如果是成功的跟新当前xx检测状态
controller 收到某步骤返回结果后,先根据当前 后台 配置和该域名已完成步骤状态,解析该域名在本次流程中的下一勾选步骤;若存在下一步骤,则以标准化任务格式投入对应任务队列;若不存在,则标记本次流程完成
只按顺序处理后台勾选的任务
注册检测
百度检测
站长检测
爱站检测
时光机检测
聚查检测
桔子检测
备注:
时光机具体还要细分方案 目前项目内已经又对于的方案加一个直晒前最近5年的快照先跑通后面可以继续细优化
步骤都是按后台勾选,把勾选的跑完就算流程跑完,第一次没勾选的,下次勾选,可以直接跑够选的步骤,其他跳过;
海外主库(域名源/最终账本)
controller dispatcher 拉取待处理域名
按 pipeline 配置生成首个待执行步骤任务
推入 Redis 对应步骤队列
worker 向 controller 拉取任务
controller 认领并分配任务给 worker
worker 执行检测并回传标准化结果
controller stage-processor 更新本地控制状态
根据结果判断:
- retry -> 重投当前步骤
- black_hit -> 拉黑并终止
- reject -> 终止/复核
- pass -> 解析下一勾选步骤并投递
controller syncer 批量同步海外主库
controller finalizer 标记本次流程完成
域名检测流程设计
1. 总体原则
海外主库负责域名源数据与最终账本持久化,不参与高频实时调度
controller 负责任务编排、任务分发、结果处理、状态推进与批量同步
Redis 负责各步骤待执行队列、运行中任务、重试任务与去重控制
worker 仅负责向 controller 拉取任务、执行对应检测函数、回传标准化结果
2. 注册任务投递
定时任务持续扫描海外主库中的待检测域名,包括未检测域名、快到期删除域名等
controller dispatcher 将符合条件的域名按标准化任务格式推入注册任务队列
3. 步骤执行规则
每个检测步骤执行完成后无论结果如何worker 均需返回标准化结果给 controller。
controller 根据结果类型做统一处理:
若为外部原因导致未得到有效结果,则根据重试策略重新投入当前步骤队列
若为业务判定不通过,则更新当前步骤状态,并按策略终止本次流程
若命中黑名单,则更新黑名单状态并终止后续所有步骤
若业务判定通过,则更新当前步骤状态,并根据本次 pipeline 配置解析下一勾选步骤,投入对应任务队列
4. pipeline 推进规则
所有步骤按后台勾选生成本次 pipeline
controller 仅按勾选顺序为单个域名推进下一步骤
若某步骤在本次 pipeline 中未勾选,则直接跳过
若前次未勾选、后次新增勾选,则可直接从已完成状态之后继续补跑,无需重跑已完成步骤
5. worker 拉取规则
worker 空闲时向 controller 发起拉取任务请求
controller 根据任务队列状态、任务顺序与后台配置返回当前可执行任务
worker 只负责执行任务,不负责流程判断、不负责决定下一步骤、不直接高频写海外主库
6. 状态更新规则
controller stage-processor 实时更新本地控制状态
controller syncer 以批量方式将步骤状态、黑名单状态、流程状态同步至海外主库
controller finalizer 在本次 pipeline 所有勾选步骤完成或流程被终止后,标记流程完成
7. 当前步骤顺序
按后台勾选顺序处理以下任务:
注册检测
百度检测
站长检测
爱站检测
时光机检测
聚查检测
桔子检测
8. 时光机一期方案
当前先按最近 5 年快照执行简化方案,先跑通主流程
后续再继续细化为更完整的时光机子流程
controller 机器如果性能足够剩余也可以部署worker 跑,