|
|
# 环境配置
|
|
|
|
|
|
系统要求: 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 |
...
|
...
|
|