01、引言
多时区问题一直是全球客户和终端用户面临的挑战之一。EngageLab Push 致力于解决这个问题,确保全球各地的终端用户可以平等地享受到同样的推送服务,同时让客户能够更好地管理不同时区的应用和对应的终端用户。
02、解决多时区问题的总体方案
1、在服务器端,所有涉及时间的信息统一以时间戳形式存储
2、portal 端的展示,以用户给应用设置的时区对应的时间展示
3、终端和服务器交互协议中的时间以时间戳来传递,终端再根据本地时区信息将时间戳转换为本地时间
03、管理系统多时区
管理员在 portal 上创建应用,再给应用设置时区,这些信息都会保存到数据库中,跟时间相关的信息都以时间戳的格式存储在数据库中。当管理员查询应用相关信息时,对于时间相关信息,系统将时间戳转换成应用所在时区的本地时间展示给管理员
04、业务处理多时区
推送业务按推送时效性来分有两种推送方式,立即推送和定时推送,立即推送跟时区特性无关,点击推送时就立即推送,但是定时推送跟时区相关,到底是以应用所在时区的时间进行定时推送,还是以终端所在时区对应的时间进行定时推送呢,这两种定时推送都存在相应的场景。 预设条件
如下图应用所在时区为东6区服务器部署在东8区终端用户分布在东4区、东1区、西3区
场景1:根据应用所在时区的时间进行定时推送场景
比如某款电商应用,计划在中午12点发起秒杀活动,希望在12点钟准时给用户推送提示用户进入秒杀页面参加活动。这种场景就需要用到根据应用所在时区的时间进行定时推送。
1、现在应用需要在东六区的2023-03-18 12:00:00 进行秒杀活动,于是在东六区的2023-03-18 10:00:00设置了一个定时推送任务,该任务的定时时间为应用(应用归属于组织,因此应用的时区继承了组织的时区)所在时区的2023-03-18 12:00:00
2、东六区的2023-03-18 12:00:00,转换为服务器的东8区的时间为:2023-03-18 14:00:00,所以在服务器的2023-03-18 14:00:00, 触发定时任务,将消息推送给对应的终端用户。
3、终端用户在同一时刻收到秒杀的推广消息。本地时间分别是东4区的2023-03-18 10:00:00东1区的2023-03-18 07:00:00西3区的2023-03-18 03:00:00
场景2:根据终端所在时区的时间进行定时推送场景
比如说有个早间新闻播报的应用,需要在早上8点定时将最新的资讯推送到终端用户,如果以应用所在时区的时间来推送,应用所在时区的早上8点可能是终端所在时区的凌晨3点钟,这个时候经消息推送给终端用户,显然是不合适的,因此需要以终端用户所在时区的早上8点进行定时推送。
1、管理人员设置了一个定时推送任务,该任务的定时时间为终端用户所在时区的2023-03-18 08:00:00进行推送
2、服务器定时扫描定时推送任务服务器发现该定时推送的目前中有东4区的终端用户,东4区的2023-03-18 08:00:00转换为服务器的东8区的时间为2023-03-18 12:00:00,所以在服务器的2023-03-18 12:00:00, 触发定时推送任务,将消息推送给东4区的终端用户。服务器发现该定时推送的目前中有东1区的终端用户,东1区的2023-03-18 08:00:00转换为服务器的东8区的时间为2023-03-18 15:00:00,所以在服务器的2023-03-18 15:00:00, 触发定时推送任务,将消息推送给东1区的终端用户。服务器发现该定时推送的目前中有西3区的终端用户,西3区的2023-03-18 08:00:00转换为服务器的东8区的时间为2023-03-18 19:00:00,所以在服务器的2023-03-18 19:00:00, 触发定时推送任务,将消息推送给西1区的终端用户。3、终端用户都是本地时间的2023-03-18 08:00:00点收到推送消息
业务流程1、终端时区的上报每个终端在登陆服务器时,就把当前终端所在的时区上报给服务,服务器根据时区将用户信息分组存储
2、定时推送的设置管理人员在设置定时推送任务时根据任务特性选择是按应用所在时区定时推送还是按终端所在时区定时推送。服务器将这些定时推送任务信息保存到数据库中
3、定时推送的触发服务器会启动一个定时扫描进程,去扫描数据库中的定时推送任务是否达到某个时区所定时的时间,如果到了,就将消息推送推送给该时区的用户。
关于极光
极光(Aurora Mobile,纳斯达克股票代码:JG)成立于2011年,是中国领先的客户互动和营销科技服务商。成立之初,极光专注于为企业提供稳定高效的消息推送服务,凭借先发优势,已经成长为市场份额遥遥领先的移动消息推送服务商。随着企业对客户触达和营销增长需求的不断加强,极光前瞻性地推出了消息云和营销云等解决方案,帮助企业实现多渠道的客户触达和互动需求,以及人工智能和大数据驱动的营销科技应用,助力企业数字化转型。
**粗体** _斜体_ [链接](http://example.com) `代码` - 列表 > 引用
。你还可以使用@
来通知其他用户。