天天观点:如何快速实现一个定时器

2023-03-28 08:21:54 来源: 腾讯云

导语

定时器(Timer)是一种在业务开发中常用的组件,主要用在执行延时通知任务上。本文以笔者在微信工作中的实践作为基础,介绍如何使用平时部门最常用的组件快速实现一个业务常用的分布式定时器服务。同时介绍了过程中遇到问题的一些解决方案,希望能够给类似场景提供一些解决思路。


(相关资料图)

1.什么是定时器

定时器(Timer)是一种在指定时间开始执行某一任务的工具(也有周期性反复执行某一任务的Timer,我们这里暂不讨论)。它常常与延迟队列这一概念关联。 那么在什么场景下我才需要使用定时器呢?

我们先看看以下业务场景:

当订单一直处于未支付状态时,如何及时的关闭订单,并退还库存?如何定期检查处于退款状态的订单是否已经退款成功?新创建店铺,N天内没有上传商品,系统如何知道该信息,并发送激活短信?

为了解决以上问题,最简单直接的办法就是定时去扫表。每个业务都要维护一个自己的扫表逻辑。 当业务越来越多时,我们会发现扫表部分的逻辑会非常类似。我们可以考虑将这部分逻辑从具体的业务逻辑里面抽出来,变成一个公共的部分。这个时候定时器就出场了。

2.定时器的本质

一个定时器本质上是这样的一个数据结构:deadline越近的任务拥有越高优先级,提供以下几种基本操作:

Add 新增任务Delete 删除任务Run 执行到期的任务/到期通知对应业务处理Update 更新到期时间 (可选)

Run通常有两种工作方式:

1.轮询

每隔一个时间片就去查找哪些任务已经到期;

2.睡眠/唤醒

不停地查找deadline最近的任务,如到期则执行;否则sleep直到其到期。

在sleep期间,如果有任务被Add或Delete,则deadline最近的任务有可能改变,线程会被唤醒并重新进行1的逻辑。

它的设计目标通常包含以下几点要求:

支持任务提交(消息发布)、任务删除、任务通知(消息订阅)等基本功能。消息传输可靠性:消息进入延迟队列以后,保证至少被消费一次(到期通知保证At-least-once ,追求Exactly-once)。数据可靠性:数据需要持久化,防止丢失。高可用性:至少得支持多实例部署。挂掉一个实例后,还有后备实例继续提供服务,可横向扩展。实时性:尽最大努力准时交付信息,允许存在一定的时间误差,误差范围可控。

3.数据结构

下面我们谈谈定时器的数据结构。定时器通常与延迟队列密不可分,延时队列是什么?顾名思义它是一种带有延迟功能的消息队列。而延迟队列底层通常可以采用以下几种数据结构之一来实现:

有序链表,这个最直观,最好理解。堆,应用实例如Java JDK中的DelayQueue、Go内置的定时器等。时间轮/多级时间轮,应用实例如Linux内核定时器、Netty工具类HashedWheelTimer、Kafka内部定时器等。

这里重点介绍一下时间轮(TimeWheel)。一个时间轮是一个环形结构,可以想象成时钟,分为很多格子,一个格子代表一段时间(越短Timer精度越高),并用一个List保存在该格子上到期的所有任务,同时一个指针随着时间流逝一格一格转动,并执行对应List中所有到期的任务。任务通过取模决定应该放入哪个格子。示意图如下所示:

如果任务的时间跨度很大,数量也多,传统的单轮时间轮会造成任务的round很大,单个格子的任务List很长,并会维持很长一段时间。这时可将Wheel按时间粒度分级(与水表的思想很像),示意图如下所示:

时间轮是一种比较优雅的实现方式,且如果采用多级时间轮时其效率也是比较高的。

4.业界实现方案

业界对于定时器/延时队列的工程实践,则通常基于以下几种方案来实现:

基于Redis ZSet实现。采用某些自带延时选项的队列实现,如RabbitMQ、Beanstalkd、腾讯TDMQ等。基于Timing-Wheel时间轮算法实现。

其中《你真的知道怎么实现一个延迟队列吗?》一文详细介绍了具体的实现方式,大家有兴趣可以阅读下。

5.方案详述

介绍完定时器的背景知识,接下来看下我们系统的实现。我们先看一下需求背景。在我们组的实际业务中,有延迟任务的需求。一种典型的应用场景是:商户发起扣费请求后,立刻为用户下发扣费前通知,24小时后完成扣费;或者发券给用户,3天后通知用户券过期。基于这种需求背景,我们引出了定时器的开发需求。

我们首先调研了公司内外的定时器实现,避免重复造轮子。调研了诸如例如公司外部的Quartz、有赞的延时队列等,以及公司内部的PCG tikker、TDMQ等,以及微信支付内部包括营销、代扣、支付分等团队的一些实现方案。最后从可用性、可靠性、易用性、时效性以及代码风格、运维代价等角度考虑,我们决定参考前人的一些优秀的技术方案,并根据我们团队的技术积累和组件情况,设计和实现一套定时器方案。

首先要确定定时器的存储数据结构。这里借鉴了时间轮的思想,基于微信团队最常用的分布式存储组件tablekv进行任务的持久化存储。使用到tablekv的原因是它天然支持按uin分表,分表数可以做到千万级别以上;其次其单表支持的记录数非常高,读写效率也很高,还可以如mysql一样按指定的条件筛选任务。

我们的目标是实现秒级时间戳精度,任务到期只需要单次通知业务方。故我们方案主要的思路是基于tablekv按任务执行时间分表,也就是使用使用方指定的start_time(时间戳)作为分表的uin,也即是时间轮bucket。为什么不使用多轮时间轮?主要是因为首先kv支持单表上亿数据, 其二kv分表数可以非常多,例如我们使用1000万个分表需要约115天的间隔才会被哈希分配到同一分表内。故暂时不需要使用到多轮时间轮。

最终我们采用的分表数为1000w,uin=时间戳mod分表数。这里有一个注意点,通过mod分表数进行Key收敛, 是为了避免时间戳递增导致的key无限扩张的问题。示例图如下所示:

任务持久化存储之后,我们采用一个Daemon程序执行定期扫表任务,将到期的任务取出,最后将请求中带的业务信息(biz_data添加任务时带来,定时器透传,不关注其具体内容)回调通知业务方。这么一看流程还是很简单的。

这里扫描的流程类似上面讲的时间轮算法,会有一个指针(我们在这里不妨称之为time_pointer)不断向后移动,保证不会漏掉任何一个bucket的任务。这里我们采用的是commkv(可以简单理解为可以按照key-value形式读写的kv,其底层仍是基于tablekv实现)存储CurrentTime,也就是当前处理到的时间戳。每次轮询时Daemon都会通过GetByKey接口获取到CurrentTime,若大于当前机器时间,则sleep一段时间。若小于等于当前机器时间,则取出tablekv中以CurrentTime为uin的分表的TaskList进行处理。本次轮询结束,则CurrentTime加一,再通过SetByKey设置回commkv。这个部分的工作模式我们可以简称为Scheduler。

Scheduler拿到任务后只需要回调通知业务方即可。如果采用同步通知业务方的方式,由于业务方的超时情况是不可控的,则一个任务的投递时间可能会较长,导致拖慢这个时间点的任务整体通知进度。故而这里自然而然想到采用异步解耦的方式。即将任务发布至事件中心(微信内部的高可用、高可靠的消息平台,支持事务和非事务消息。由于一个任务的投递到事件中心的时间仅为几十ms,理论上任务量级不大时1s内都可以处理完。此时time_pointer会紧跟当前时间戳。当大量任务需要处理时,需要采用多线程/多协程的方式并发处理,保证任务的准时交付。broker订阅事件中心的消息,接受到消息后由broker回调通知业务方,故broker也充当了Notifier的角色。整体架构图如下所示:

主要模块包括:

任务扫描Daemon:充当Scheduler的角色。扫描所有到期任务,投递到事件中心,让它通知broker,由broker的Notifier通知业务方。

定时器broker:集业务接入、Notifier两者功能于一身。

任务状态机图如下所示,只有两种状态。当任务插入kv成功时即为pending状态,当任务成功被取出并通知业务方成功时即为finish状态。

6.实现细节与难点思考

下面就上面的方案涉及的几个技术细节进行进一步的解释。

6.1 业务隔离

通过biz_type定义不同的业务类型,不同的biz_type可以定义不同的优先级(目前暂未支持),任务中保存biz_type信息。

业务信息(主键为biz_type)采用配置中心进行配置管理。方便新业务的接入和配置变更。业务接入时,需要在配置中添加诸如回调通知信息、回调重试次数限制、回调限频等参数。业务隔离的目的在于使各个接入业务不受其他业务的影响,这一点由于目前我们的定时器用于支持本团队内部业务的特点,仅采取对不同的业务执行不同业务限频规则的策略,并未做太多优化工作,就不详述了。

6.2 时间轮空转问题

由于1000w分表,肯定是大部分Bucket为空,时间轮的指针推进存在低效问题。联想到在饭店排号时,常有店员来登记现场尚存的号码,就是因为可以跳过一些号码,加快叫号进度。同理,为了减少这种“空推进”,Kafka引入了DelayQueue,以bucket为单位入队,每当有bucket到期,即queue.poll能拿到结果时,才进行时间的“推进”,减少了线程空转的开销。在这里类似的,我们也可以做一个优化,维护一个有序队列,保存表不为空的时间戳。大家可以思考一下如何实现,具体方案不再详述。

6.3 限频

由于定时器需要写kv,还需要回调通知业务方。因此需要考虑对调用下游服务做限频,保证下游服务不会雪崩。这是一个分布式限频的问题。这里使用到的是微信支付的限频组件。保证1.任务插入时不超过定时器管理员配置的频率。 2.Notifier回调通知业务方时不超过业务方申请接入时配置的频率。这里保证了1.kv和事件中心不会压力太大。2.下游业务方不会受到超过其处理能力的请求量的冲击。

6.4 分布式单实例容灾

出于容灾的目的,我们希望Daemon具有容灾能力。换言之若有Daemon实例异常挂起或退出,其他机器的实例进程可以继续执行任务。但同时我们又希望同一时刻只需要一个实例运行,即“分布式单实例”。所以我们完整的需求可以归纳为“分布式单实例容灾部署”

实现这一目标,方式有很多种,例如:

接入“调度中心”,由调度中心来负责调度各个机器各节点在执行任务前先分布式抢锁,只有成功占用锁资源的节点才能执行任务各节点通过通信选出“master"来执行逻辑,并通过心跳包持续通信,若“master”掉线,则备机取代成为master继续执行

主要从开发成本,运维支撑两方面来考虑,选取了基于chubby分布式锁的方案来实现单实例容灾部署。这也使得我们真正执行业务逻辑的机器具有随机性。

6.5 可靠交付

这是一个核心问题,如何保证任务的通知满足At-least-once的要求?

我们系统主要通过以下两种方式来保证。

1.任务达到时即存入tablekv持久化存储,任务成功通知业务方才设置过期(保留一段时间后删除),故而所有任务都是落地数据,保证事后可以对账。

2.引入可靠事件中心。在这里使用的是事件中心的普通消息,而非事务消息。实质是当做一个高可用性的消息队列。

这里引入消息队列的意义在于:

将任务调度和任务执行解耦(调度服务并不需要关心任务执行结果)。异步化,保证调度服务的高效执行,调度服务的执行是以ms为单位。借助消息队列实现任务的可靠消费。

事件中心相比普通的消息队列还具有哪些优点呢?

某些消息队列可能丢消息(由其实现机制决定),而事件中心本身底层的分布式架构,使得事件中心保证极高的可用性和可靠性,基本可以忽略丢消息的情况。事件中心支持按照配置的不同事件梯度进行多次重试(回调时间可以配置)。事件中心可以根据自定义业务ID进行消息去重。

事件中心的引入,基本保证了任务从Scheduler到Notifier的可靠性。

当然,最为完备的方式,是增加另一个异步Daemon作为兜底策略,扫出所有超时还未交付的任务进行投递。这里思路较为简单,不再详述。

6.6 及时交付

若同一时间点有大量任务需要处理,如果采用串行发布至事件中心,则仍可能导致任务的回调通知不及时。这里自然而然想到采用多线程/多协程的方式并发处理。在本系统中,我们使用到了微信的BatchTask库,BatchTask是这样一个库,它把每一个需要并发执行的RPC任务封装成一个函数闭包(返回值+执行函数+参数),然后调度协程(BatchTask的底层协程为libco)去执行这些任务。对于已有的同步函数,可以很方便的通过BatchTask的Api去实现任务的批量执行。Daemon将发布事件的任务提交到BatchTask创建的线程池+协程池(线程和协程数可以根据参数调整)中,充分利用流水线和并发,可以将任务List处理的整体时延大大缩短,尽最大努力及时通知业务方。

6.7 任务过期删除

从节省存储资源考虑,任务通知业务成功后应当删除。但删除应该是一个异步的过程,因为还需要保留一段时间方便查询日志等。这种情况,通常的实现方式是启动一个Daemon异步删除已完成的任务。我们系统中,是利用了tablekv的自动删除机制,回调通知业务完成后,除了设置任务状态为完成外,同时通过tablekv的update接口设置kv的过期时间为1个月,避免了异步Daemon扫表删除任务,简化了实现。

6.8 其他风险项

1.由于time_pointer的CurrentTime初始值置为首次运行的Daemon实例的机器时间,而每次轮询时都会对比当前Daemon实例的机器时间与CurrentTime的差别,故机器时间出错可能会影响任务的正常调度。这里考虑到现网机器均有时间校正脚本在跑,这个问题基本可以忽略。

2.本系统的架构对微信事件中心构成了强依赖。定时器的可用性和可靠性依赖于事件中心的可用性和可靠性。虽然目前事件中心的可用性和可靠性都非常高,但如果要考虑所有异常情况,则事件中心的短暂不可用、或者对于订阅者消息出队的延迟和堆积,都是需要正视的问题。一个解决方案是使用MQ做双链路的消息投递,解决对于事件中心单点依赖的问题。

结语

这里的定时器服务目前仅用于支持境外的定时器需求,调用量级尚不大,已可满足业务基本要求。如果要支撑更高的任务量级,还需要做更多的思考和优化。随时欢迎大家和和我交流探讨。

加入我们

微信境外支付团队在不断追求卓越的路上寻找同路人,欢迎加入我们的团队。

标签:

上一篇 :

下一篇 :

天天观点:如何快速实现一个定时器

定时器(Timer)是一种在业务开发中常用的组件,主要用在执行延时通知任务上。本文以笔者在微信工作中的...

03-28 08:21:54

焦点速看:毛阿敏穿出了属于自己的风格,红色牛角扣大衣配烟筒靴,明艳减龄

现在冬季大衣的款式真是各式各样,在保持原有的简约大气的基础上,还从各个细节进行改良,比如,领口的...

03-28 06:04:45

全球新动态:3月27日基金净值:富国互联科技股票A最新净值2.4209,涨0.32%

3月27日,富国互联科技股票A最新单位净值为2 4209元,累计净值为2 4209元,较前一交易日上涨0 32%。...

03-28 01:38:20

今日讯!大悦城地产为北京新润致远25亿元融资按股权比例提供担保

大悦城地产为北京新润致远25亿元融资按股权比例提供担保

03-27 22:09:42

【环球播资讯】厦门国贸:国贸华瑞及国贸鑫新收购润同并赢基金43.88%实缴份额

(资料图)乐居财经王敏3月27日,厦门国贸(SH600755)发布出售资产暨关联交易的公告。公告显示,厦门国贸全...

03-27 20:43:53

全球时讯:禅定是什么意思

1、禅定,又名「三昧」,所谓「念佛三昧,三昧之王。2、」「禅」「定」亦即「止」「观」,止是放下,观...

03-27 19:16:55

世界微头条丨www.xuexi.chinabett.com_www chinabett com

1、测试一下,确实打不开,可能是站点自身问题。2、可以网搜该站点的中文名称,看是否可以找到新的链接...

03-27 17:56:32

世界即时:大宗交易:汤姆猫成交9744万元,折价21.92%(03-27)

2023年3月27日,汤姆猫发生1笔大宗交易,总成交1600万股,成交金额9744万元,成交价6 09元,折价21 92%。

03-27 16:22:14

资讯推荐:西安饮食(000721)3月27日主力资金净买入354.28万元

截至2023年3月27日收盘,西安饮食(000721)报收于15 57元,上涨3 39%,换手率15 12%,成交量65 92万手,成交额10 13亿元。

03-27 15:01:24

焦点简讯:8级大风是多大_八级大风有多大 风速多少

1、8级风指风速为17 2至20 4米 秒的风,相当于62-74km h,风压为184 9-267 8Pa,渔舟在港内避

03-27 13:57:50

焦点热门:安徽省艺考改革方案公布 明年起提高文化课成绩

安徽省艺考改革方案公布明年起提高文化课成绩,高考,招生,考试,教育部,文化课,统考

03-27 11:57:36

全球今头条!粮油减损与真菌毒素防控创新团队开发一种基于全细胞生物传感器阵列的无损高准确度监测粮食霉变新技术

中国农业科学院农产品加工研究所粮油减损与真菌毒素防控创新团队开发了一种基于有机挥发物响应的全细胞...

03-27 11:13:47

焦点简讯:俄罗斯公司推出类似 ChatGPT 的 AI 程序 SistemmaGPT

俄罗斯+Sistemma+公司近日推出了一款俄语人工智能程序,名称为+SistemmaGPT,其功能类似于+ChatGPT。声...

03-27 10:13:44

讯息:深桑达A(000032)3月24日主力资金净卖出1.53亿元

截至2023年3月24日收盘,深桑达A(000032)报收于34 78元,下跌4 08%,换手率7 34%,成交量47 32万手,成交额16 66亿元。

03-27 09:05:53

全球热点!鉴的部首是什么部首和结构_鉴的部首是什么部首

1、鉴拼音 jiàn  部首 金笔画 13五行 金繁体 鉴五笔 JTYQ生词本基本释义 详细释义 1 镜子(...

03-27 07:05:53

世界即时看!婵娟指的是什么动物_婵娟指的是什么

1、婵娟,是一个汉语词语,意思是形容形态美好、漂亮,也指美女和月亮。2、形态美好、漂亮。3、比如蛾眉...

03-27 02:04:42

环球今日报丨【凝神谋发展 实干兴陇原——“三抓三促”行动专题报道】甘州区明永镇扎实推动“三抓三促”行动走深走实

【凝神谋发展实干兴陇原——“三抓三促”行动专题报道】甘州区明永镇扎实推动“三抓三促”行动走深走实

03-26 21:57:58

世界讯息:第三届消博会将向社会公开发售门票10万张 购票限制放宽

央视网消息:第三届中国国际消费品博览会将于4月11日至15日在海南省海口市举行,其中4月14日和15日设为...

03-26 19:57:26

天天快报!中亚股份(300512):第四届第二十一次监事会会议决议,审议关于全资子公司转让产业投资基金部分份额的议案

中亚股份(300512)(300512):第四届第二十一次监事会会议决议,审议关于全资子公司转让产业投资基金部分...

03-26 17:46:06

每日动态!广东男篮迎喜讯,赵睿续约有新进展,曝朱芳雨有意顶薪留人!

本赛季的CBA常规赛四强已经出炉,除了异军突起的浙江男篮基本上预定了常规赛冠军外,辽粤两支球队也锁定...

03-26 15:44:39

信息:美国考虑加码银行支持,助第一共和银行渡难关

美国政府考虑为银行提供更多支持,以稳定第一共和国和其他地区性银行。当地时间周六,据媒体援引知情人...

03-26 13:04:14

环球关注:东杰智能:中标稳健医疗9600万元自动化集成项目

东杰智能9月21日公告,公司于近日收到稳健医疗(武汉)有限公司的中标通知书,该通知书确认公司为其一期...

03-26 10:59:25

【全球独家】wsb概念股什么意思

1、wsb概念股是指具有某种特别内涵的股票,与业绩股相对而言的。业绩股需要有良好的业绩支撑。而概念股...

03-26 10:45:46

天天微动态丨镰刀妹AI智能播报|3月26日长沙天气和明日预报

长沙晚报掌上长沙03月26日讯长沙市,03月26号,白天,阴,气温16摄氏度,夜晚,小雨,气温8摄氏度。长沙...

03-26 08:22:30

【播资讯】往事如烟的意思是什么_往事如烟的含义是什么

欢迎观看本篇文章,小勉来为大家解答以上问题。往事如烟的意思是什么,往事如烟的含义是什么很多人还不...

03-26 04:49:54

环球短讯!谢霆锋生日中国好声音_谢霆锋生日

1、谢霆锋英文名NicholasTse绰号柠檬(名字谐音)笔名豆丁籍贯中国香港出生1

03-25 23:11:36

当前观察:林允个人资料

1、林允(JellyLin),本名费霞,1996年4月16日出生于浙江湖州,中国内地影视女演员。2、2016年,在周星...

03-25 21:39:41

当前视讯!重大研究突破:科学发现茅台的美,核心产区的茅台酒具有不可复制性

重大研究突破:科学发现茅台的美,核心产区的茅台酒具有不可复制性

03-25 20:10:57

当前快看:复仇军监牢钥匙掉落任务_复仇军监牢钥匙任务第一步

1、要做虚空风暴的拯救任务,方法如下:首先玩家需要来到虚空风暴法力熔炉乌提斯。2、2、找到指挥官阿米...

03-25 17:45:25

环球播报:注意防护!雷雨天气来了,周日仍有明显降雨

注意防护!雷雨天气来了,周日仍有明显降雨

03-25 15:05:04

讯息:重庆银行房贷年限一般是多久

重庆银行的房贷年限一般在1到30年左右,具体情况如下:1、一手商业用房按揭贷款:最长年限不超过10年;2...

03-25 14:09:10

微头条丨北跨:这片渭北区域的“核心板块”,要当“排头兵”

北跨:这片渭北区域的“核心板块”,要当“排头兵”

03-25 12:53:24

新消息丨住建安全在行动㊶丨当“D级危房”遇上“传统村落”,如何解?

川观新闻记者高敬视频剪辑 吴聃近日,由四川省住房和城乡建设厅、四川省建筑科学研究院有限公司、四川...

03-25 10:57:44

每日焦点!新华全媒+|保障就位干劲足——多地春耕一线扫描资讯

春耕生产是全年粮食丰收的基础。近日,记者在湖南、安徽、江西等产粮大省采访了解到,南方早稻育秧陆续...

03-25 09:05:27

世界新消息丨中国火星探测器什么时候登陆火星

中国火星探测器2021年4月23日登陆火星。火星探测器是一种用来探测火星的人造航天器,包括从火星附近掠过...

03-25 06:35:38

要闻速递:浑水创始人:救助硅谷银行就是救助风投基金 这是恶性循环

浑水创始人:救助硅谷银行就是救助风投基金这是恶性循环,存款,布洛克,硅谷银行,风投公司,风投基金,恶性...

03-25 06:09:44

环球时讯:股票行情快报:普瑞眼科(301239)3月24日主力资金净买入244.49万元

截至2023年3月24日收盘,普瑞眼科(301239)报收于86 94元,上涨0 71%,换手率0 89%,成交量3314 0手,成交额2878 95万元。

03-25 01:20:32

全球焦点!板栗的产地价格_板栗的产地

1、板栗原产地:板栗主要分布在北半球的亚洲、欧洲、美洲和非洲。2、它起源于中国,分布在越南、台湾和中...

03-24 22:06:40

全球信息:Arbitrum:权力下放的下一阶段

ArbitrumOrbit​的推出使得开发人员可以使用Arbitrum一流的技术无需许可且比以往任何时候都更容易推出他...

03-24 20:53:30

当前关注:打造乡村美好生活——住宅产业化集团设计研究院举办“乡建设计方案竞赛”

导语为响应国家全面推进乡村振兴计划,打造百姓美好生活图景,同时提高设计的创新性,近期,设计研究院...

03-24 19:03:26

世界百事通!为老年乘客追回看病钱的公交司机,获5000元正能量奖励

长江日报大武汉客户端3月24日讯(记者王谦马慧洁)3月10日,长江日报刊发报道《“你们跑不了的!”公交...

03-24 17:34:40

当前观察:iphone7标配的是什么耳机

iPhone7标配的耳机是:EARPODS有线耳机(iPhone7系列前的耳机,把接口处换成了“lighting”数据接口,即...

03-24 17:27:59

世界快看:2022年全国教育事业发展基本情况发布 学历教育在校生达2.93亿人

2022年全国教育事业发展基本情况发布学历教育在校生达2 93亿人,招生,教育,学前教育,本科,在校生,高中阶段

03-24 15:58:56

当前关注:协同应用平台为企业业务变革插上数字翅膀

协同应用平台为企业业务变革插上数字翅膀-

03-24 15:07:21

天天微动态丨格力冷静王三代和四代区别(格力冷静王三代)

1、冷静王Ⅲ核心功能:搭载格力冷酷外机,挑战60℃高温制冷禁区(限变频1级35机)。2、其他功能:①隐藏...

03-24 13:21:11

焦点速讯:当日快讯:沃尔玛将在美国5家电商订单履行中心裁员数百人

3月23日,沃尔玛一位发言人向路透社证实,该公司在美国的5家电商订单履行中心将裁员数百人,被裁员工可...

03-24 12:14:49

全球微速讯:海底捞回应孕妇可以插队:会根据实际情况进行协调安排座位

最近有网友称在海底捞等位时,遇到服务员优先安排孕妇的情况。海底捞对此做出回应,表示如果现场有孕妇...

03-24 10:47:21

微动态丨得房率什么意思

得房率是买房非常重要的一个指标,也就是说在计算。房屋面积实际算的是建筑面积,所以得房率低不实惠,...

03-24 10:01:35

每日时讯!前期会计差错更正后大幅调减2019年归母净利润比例近九成,巴安水务及相关责任人遭深交所通报批评

11月16日,巴安水务及时任董事长张春霖、总经理王贤、时任财务总监孙颖收深交所通报批评处分。经查,4月...

03-24 09:49:59

当前速递!七月与安生海报_七月与安生七月到底死没死

1、看过【七月与安生】这部电影给我们留下很多的问题,这部爱情电影更多的是分析人生,将爱情的意义全面...

03-24 08:35:22

快资讯:3月23日基金净值:招商瑞泽一年持有期混合A最新净值1.0479,涨0.04%
环球热消息:黑土之声|风干物燥 且听忠告
每日热门:资本缺口高达135亿美元!第一共和银行股东或血本无归
焦点速递!唐僧扮演者有几个
当前信息:国产车为何不用中文按键,是文化不自信?比亚迪实测,短期难成功
世界热点!黎明觉醒不同区可以一起玩吗 ios/安卓微信qq不同区服互通介绍[多图]
环球速讯:上海虹桥→香港西九龙高铁4月1日起恢复开行,车票今起发售
速读:吉林长白山出品:鲜人参10支39.9元大促
当前讯息:《他是谁》大结局:2人获罪,2人全身而退,一人留终生遗憾
世界时讯:教育部:全国共有幼儿园28.92万所,其中84.96%为普惠园
全球热文:劳资员是干什么工作的
环球实时:w7和w10系统哪个占内存少(w7和w10系统哪个好用)
环球滚动:中炬高新(600872):诉讼计提负债影响利润 看好疫后格局改善
全球观察:德国现代商务社交礼仪指南
看点:快快评丨“ 1000 万户”和“ 18 条”,透着何种玄机?
今日快看!广东哪有玩具批发市场
【报资讯】cba排名表(cba排名表)
精选!开完奥迪Q5L,再换到凯迪拉克XT5上,车主表示:差距明显
天天热文:【地评线】太阳鸟时评:春风拂暖“旅游路”,中国经济涌动发展新活力
环球今热点:你问政 我来答丨快速申办、跨区办理、丢失补办……郑州居住证办理热点答疑!
【世界热闻】英雄联盟什么是演员,英雄联盟的演员和导演是什么意思
世界看点:今日建行纸白银价格走势图最新行情(3月22日)
天天快播:未央区枣园小学语文实践作业展示
今日热闻!西南证券给予比依股份持有评级
全球视点!养老金知识大全!个人账户养老金是如何计算出来的
讯息:江苏今年将为超24万名适龄女生免费接种HPV疫苗
环球观察:乌拉特前旗公安局 警务保障室圆满完成了2022年资产年报编报工作
观天下!50亿元人民币央行票据在港成功发行
天天热讯:为支持瑞信出售 瑞士人均支出高达1.35万美元
全球新消息丨食品商贸公司简介范文大全(精选3篇)
环球今热点:掌心雷是高级法术吗(掌心雷)
天天时讯:2023佛山50公里徒步天气预报(附查询入口)
焦点报道:2022年度国家统一法律职业资格考试主观题考试准考证打印
环球热推荐:中国形成了更加成熟的现代化理论(国际论坛·读懂中国·读懂中国共产党)
天天速递!中国足协公示第二批完成债务清欠俱乐部名单:广州、深圳、成都蓉城在列
环球微资讯!青岛市北区发布校园足球发展三年行动计划 开启高质量发展模式
焦点日报:贡献的意思是什么_贡献的意思
世界视讯!NBA 上脚合集!「二次元」KT8 亮相!网友:求市售!
世界观焦点:《大侠立志传》一周目开局特征推荐
天天速递!强强联合!怀柔科学城创新联合体服务启动
全球热推荐:2023珠海清明节景区优惠活动最新汇总(更新中)
全球热文:官方通报!信阳4家汽车4S店存在消防隐患被通报
天天资讯:福州公租房b类有多少补贴
快看点丨鸡西新型冠状病毒肺炎疫情:3月20日鸡西疫情最新消息今天数据统计情况通报
天天亮点!楠梓庄
当前滚动:【双流区·牛宝贝黄牛肉】99元享牛宝贝黄牛肉2-3人餐!158元享牛宝贝黄牛肉4人餐!牛肉、牛杂、肥牛等!
每日快播:三星a70参数及价格_三星a70参数
今日关注:阿巴嘎旗公安局:挂图作战理思路 条线指导稳提升
全球速递!恶意P图侮辱女性 一高校深夜通报:开除学籍!
世界要闻:中信证券:A股全面修复行情的第二波虽略有延后但趋势已日益清晰
X 广告
资讯
X 广告

Copyright ©  2015-2022 纵横畜牧网版权所有  备案号:浙ICP备2022016517号-12   联系邮箱:51 46 76 11 3 @qq.com