Authored by 陈峰

commit

Showing 1 changed file with 167 additions and 0 deletions
# 环境配置
系统要求: nodejs@10.3.0+、yarn、pm2
运行方式:
1. 执行 yarn安装项目依赖
2. pm2 start process.json
配置文件config/index.js:
loggers:日志文件配置
database:ufo数据库配置
monitorReport:上报地址
# 爬虫
## 比价爬虫
### spider-task
描述:根据/config/skns.json文件的skn爬取对应毒的价格数据。
执行频率:15分钟/次
步骤:
1. 获得ufo尺码最新列表,作为之后爬取到的数据的尺码对应关系。
2. 检查skns.json文件是否有更新,如果有更新则清理一次channel_sku_compare表中被删除的skn记录,避免skn从比价范围移除后依然有比价记录的情况。
3. 轮训爬取毒的价格数据,并从尺码记录中得到尺码对应关系,插入或者更新channel_sku_compare,最后插入channel_sku_compare_record表。
ps: 其中如果skn是乐高产品,则强制毒的尺码关系对应到ufo的F码
### calc-task
描述:每天根据channel_sku_compare_record表计算过去24小时skn的平均价
执行频率:每天10点15分执行一次
步骤:
1. 获取过去24小时channel_sku_compare_record表数据
2. 计算每个skn在过去24小时的平均价,去头去尾
3. 更新channel_sku_compare表的channel_average_price平均价字段
### clear-task
描述:定时清理超过三天的比价记录表channel_sku_compare_record数据
执行频率:每天23点59分执行
## 价格曲线
### price-task
描述:全量更新毒和神箭手的数据维护到本地数据库
频率:每天1点10分执行
步骤:
1. 循环调用毒接口获取毒数据写入本地数据库:db/du.json
2. 调用神箭手批量接口获取数据写入本地数据库:db/shenjian.json
### price-line-task/incre-relation-task
描述:维护毒、神箭手、ufo的关联数据
频率:每天2点10分执行
步骤:
1. 获取本地数据库毒和神箭手的数据
2. 获取ufo在上架的商品数据
3. 根据货号匹配三个数据源的关系数据,并插入db/product-relation.json
### price-line-task/price-day-task
描述:爬取ufo、毒、神箭手价格并根据比例计算价格曲线数据-当日
频率:2小时/次
步骤:
1. 获取ufo的尺码数据,作为之后尺码对应关系
2. 根据三个数据源的对应关系数据表:db/product-relation.json,循环获取三个数据源的skn数据。毒:调用毒接口获取数据(spider/du.js)、神箭手:调用神箭手接口获取数据库(spider/shenjian.js)、ufo:直接读数据库查询数据(spider/ufo.js)
3. 拿到三端数据的价格之后根据预设比例计算曲线价格:(ufo:神箭手:毒:0.5:0.2:0.3、ufo:神箭手:0.7:0.3、ufo:毒:0.7:0.3、神箭手:毒:0.7:0.3、只有一种价格时以这个价格为准)
4. 得到曲线价格收插入price_trend_day表
ps: 调用神箭手接口获得的数据需要进一步处理才能得到颜色尺码价格,需要先在数据的sku.label中找到颜色分类、鞋码后找到实际的sku数据价格,其中如果商品有两个颜色则把颜色属性的desc和货号匹配如果匹配上就按照这个颜色属性为准。
### price-line-task/price-30day-task
描述:爬取ufo、毒、神箭手价格并根据比例计算价格曲线数据-30天
频率:每天1点、13点执行
步骤:
1. 获取当天表的最新数据
2. 插入30天表:price_trend_month
### price-line-task/price-60day-task
描述:爬取ufo、毒、神箭手价格并根据比例计算价格曲线数据-60天
频率:每天1点1分执行
步骤:
1. 获取当天表的最新数据
2. 插入60天表:price_trend_sixty_day
### price-line-task/price-180day-task
描述:爬取ufo、毒、神箭手价格并根据比例计算价格曲线数据-180天
频率:每天1点2分执行
步骤:
1. 判断三天内是否执行过
2. 如果没有执行过,获取当天表的最新数据
2. 插入180天表:price_trend_half_year
### price-line-task/clear-task
描述:清理价格曲线数据:
当日price_trend_day的三天前数据
30天price_trend_month的30天前数据
60天price_trend_month的60天数据
180天price_trend_half_year的180天钱数据
频率:每天1点3分执行
## 毒接口检测
### check-du-task
描述:检测毒h5页面中接口调用的版本号,如果版本号发生变化则钉钉报警
频率:1小时/次
# 监控
dashboard:UFO爬虫
link: http://g.yohops.com/dashboard/db/ufopa-chong?refresh=1h&orgId=1
1. 比价爬虫上报更新成功数、清理失败、计算平均价失败监控
2. 价格曲线的当日、30天、60天、180天新增价格数据数监控
3. 每日毒、神箭手全量更新的数量监控
4. UFO、毒、神箭手关系表每日新增数监控
5. 价格曲线数据每日清理数量监控
\ No newline at end of file
... ...