【技术实现步骤摘要】
一种文旅产业平台的延时调度方法、系统及存储介质
[0001]本专利技术涉及业务平台后台的服务延时远程调用
,尤其是涉及一种文旅产业平台的延时调度方法、系统及存储介质。
技术介绍
[0002]文旅产业近年来在我国快速发展,为了满足用户多样化的需求,线上业务的要求越来越高,因此,网络后端架构要满足高并发等性能要求。在文旅产业管理平台的业务线上,除了实时业务外,还存在许多的延时任务,如超时自动取消订单、超时自动发送短信、付款后延时一段时间查询是否到账、定时给供应商发短信等。
[0003]在业务量较少时,可以为每一个延时任务设置一个定时器,分别为每个任务进行延时计时,这样占用资源较大,在业务量较多时难以实现;或者定期扫描数据库表,找到一段时间内到齐的延时任务并执行,这样不仅难以保证任务调度精度,而且数据库压力较大;现有技术中Rockecktmq支持带延时的消息,但是只能支持延时两个小时内的,Redis的key配合expire time可以实现延时功能,但是性能不达标。
[0004]中国专利CN111782414 ...
【技术保护点】
【技术特征摘要】
1.一种文旅产业平台的延时调度方法,其特征在于,基于任务时间轮和延时队列实现,所述任务时间轮包括指针和多个槽,所述指针以预设置的速度在任务时间轮内转动,每个槽关联一个延时队列,所述延时队列用于存放延时任务;当接收到新的延时任务时,基于任务时间轮的当前时间和延时任务的延时时长计算延时任务所属的槽,将该延时任务放入槽所关联的延时队列中;当指针指向一个槽时,检查该槽所关联的延时队列,将延时队列中满足触发条件的延时任务取出并执行。2.根据权利要求1所述的一种文旅产业平台的延时调度方法,其特征在于,所述任务时间轮上槽的数量为wheelSize,wheelSize>1,每个槽的时间范围为tickMs,tickMs>0,则任务时间轮的轮盘跨度interval为tickMs*wheelSize,将任务时间轮的当前时间记为currentTime,0≤currentTime≤interval,当currentTime为[tickMs*(i
‑
1),tickMs*i]时指针指向第i个槽,1≤i≤wheelSize,当指针自第wheelSize个槽移向第1个槽时,currentTime自tickMs*wheelSize变化为0;指针指向第i个槽且接收到一个新的延时任务时,新的延时任务所属的槽为第(「(currentTime+delayMs)/tickMs」%wheelSize)个槽,delayMs为新的延时任务的延时时长,将该延时任务放入槽所关联的延时队列中,在延时队列中,所述延时任务的等待次数round为(「(currentTime+delayMs)/tickMs」/wheelSize),待触发时间expireTime为currentTime+delayMs
‑
round*interval;指针指向第i个槽时,将该槽所关联的延时队列中满足触发条件的延时任务取出并执行,所述触发条件为currentTime≤expireTime且round为0,指针自第i个槽移向下一个槽时,将第i个槽所关联的延时队列中满足循环条件的延时任务的等待次数round减1,所述循环条件为currentTime≤expireTime且round不...
【专利技术属性】
技术研发人员:赵晓丰,
申请(专利权)人:上海景域智能科技有限公司,
类型:发明
国别省市:
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。