直投人群包上传流程
2022-04-26 16:29:54 2 举报
直投人群包上传流程
作者其他创作
大纲/内容
1、初始化所有渠道上传包执行器Map2、查询可执行的人群包所有任务集合3、并更新任务状态为执行中,更新上传开始时间4、将任务集合添加入阻塞队列
人群包创建接口/audience/add参数如上
封装参数,调用人群包接口/data_source/create
1、调用GDT创建人群包接口并返回人群包ID
成功
1、通过渠道从执行器Map中获取执行器2、调用uploadPAudienceFile上传人群包
最多重试五次
GDT
更新任务状态。上传结束时间、上传路径(下次上传前要减少的人群)
背景:需要将DPM平台常用的人群包定时上传至头条和广点通直投平台,DMP平台每个人群包都保存在FTP中,故需要根据人群包ID反查出人群包FTP路径,将其下载后上传至直投平台。场景:一、同一个人群包上传至头条和广点通直投平台一个账户中 二、同一个人群包上传至头条和广点通直投平台多个账户中 三、更新周期一般是每日定时更新一次,不排除以后有多日更新一次或者一天更新多次的需求,一天更新多次暂无设计 四、FTP路径和前缀,示例:不包含日期 路径:/inactive-user/taobao/ 前缀:taobao_zk。 包含日期 路径:/core/__DATE__/ 前缀 __DATE__shoutaospan style=\"font-size: inherit;\
判断渠道
定时任务
/data_source/create
TOUTIAO
1、accountId:直投平台账户ID2、name:人群包名称3、ftpPath:ftp路径,如果目录包含日期,则需要加上__DATE__/, 如 /core/__DATE__/4、prefix:文件前缀,如果前缀是日期,则需要加上__DATE__,如 __DATE__shoutao5、dueTime:上传时间点,HH:mm:ss,因为当前人群包可能还没生成6、period:执行周期(天)7、dataType:设备类型(IMEI:0,IMEI_MD5:1,ANDROID_ID:2..........)8、channel:渠道:GDT、TOUTIAO
上传是否成功
1、下载FTP文件2、切割、压缩、加密后上传至头条平台并返回文件路径filePathList3、调用头条API创建数据源并返回数据源ID
失败
人群包服务
GdtFileService#createDataSource
定时执行:数据库字段 上传开始时间lastTime(2022-04-26)、上传时间点dueTime(12:00:00)、执行周期period(天)。 第一次上传需要DPM平台当天人群包处理完,才能上传。定时任务5秒执行一次,初始化时开启线程池(5个线程) 1、查询符合条件的集合:上一次上传开始时间lastTime截取日期拼接dueTime+period天<=new Date() 2、将集合添加进阻塞队列,并修改记录的状态为上传中,将上传开始时间更新为当前时间 3、线程池(5个线程)循环从阻塞队列中取出任务进行人群包上传。 4、上传完后将状态改为正常,并将更新上传结束时间
开启线程池(五个线程),循环从阻塞队列中取任务
二期优化
更新任务状态失败,重试次数,并告警
一、更新周期,一天更新多次二、GDT根据现有逻辑观察内存以及上传效率,GDT上传的内容为减少人群和增加人群,可以做将当日和上次人群包求增量和减量三、重试机制
IJobHandler#5秒执行一次
直投人群包上传流程
1、获取当日日期,替换路径和文件前缀__DATE__2、从FTP获取上传文件集合3、是否有减少人群,有则上传减少人群包,第一次无4、上传增加人群包(切割、压缩、加密、上传)
效果通后台系统
1、获取当日日期,替换路径和文件前缀__DATE__2、从FTP获取上传文件集合3、直接上传人群包(替换)
添加人群包配置定时任务表
ToutiaoFileService#createDataSource
0 条评论
下一页