【焦点热闻】如何快速实现一个定时器

2023-03-24 20:07:30 来源: 腾讯云

导语

定时器(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-24 20:07:30

胱氨酸鱼肝油维生素b6的作用_胱氨酸鱼肝油维生素b6的功效

1、胱氨酸片、鱼肝油和维生素b6可以防止脱发。胱氨酸片的主要成分胱氨酸是一种氨基酸类药物,能促进细胞...

03-24 18:44:34

网页制作的基本步骤 天天新资讯

网页制作的基本步骤。1、挑选网页主题。2、做网页构造整体规划。3、充足搜集原材料。一般来讲,会搜集文...

03-24 18:34:19

河南省发改委副主任夏志胜一行赴兰考县三义寨乡开展调研-天天热消息

2023年3月23日,河南省发展改革委党组成员、副主任夏志胜带领委城市发展处、地区经济处、地区振兴处、社...

03-24 17:25:34

前沿热点:【全球独家】被昔日合作搭档冯淬帆怒斥“作品害了很多人”,王晶发声回应

被昔日合作搭档冯淬帆怒斥“作品害了很多人”,王晶发声回应

03-24 16:07:31

研究表明肠道细菌对神经发育的重要性

阿尔伯塔大学主导的研究在其埃德蒙顿站点跟踪了来自儿童队列研究(CHILD)的400多名婴儿。一岁时肠道细菌...

03-24 14:49:42

【新要闻】甘肃学考等级怎么划分

甘肃省高中学业水平考试等级划分根据《甘肃省普通高中学业水平考试实施办法》:合格性考试:所有合格性...

03-24 13:05:58

从昌平怎么去朝阳体育中心 当前滚动

2023年3月31日14时至17时,朝阳体育中心将举办专场招聘会。届时,300余家企业将携千余个优质岗位亮相。...

03-24 11:58:53

坐飞机托运行李规定 环球关注

根据《中国民用航空旅客行李运输规则》第三十七条托运行李必须包装完善、锁扣完好、捆扎牢固,能承受一...

03-24 11:01:57

【W解读】美联储加息进入尾声了吗?泓德基金提醒:警惕高利率环境下美国金融体系的脆弱性 全球百事通

美国时间2023年3月22日,美联储公布3月FOMC会议声明,宣布加息25个基点,将联邦基金利率区间上调至4 75...

03-24 10:46:35

观热点:郝伟敲定新赛季鲁能9人离队名单,三大亚冠主力在列,刘军帅领衔

郝伟敲定了新赛季离队的9名鲁能球员名单。蔺国玉是郝伟嫡系的宠儿,郝伟一直想将他作为重点培养对象。郝...

03-24 09:44:11

环球观点:最高检印发发挥检察技术作用提升新时代公益诉讼办案质效的典型案例检察技术助力提升公益诉讼办案质效

原标题:最高检印发发挥检察技术作用提升新时代公益诉讼办案质效的典型案例检察技术助力提升公益诉讼办...

03-24 08:09:53

当前通讯!世界富豪们正把钱从美国、瑞士转到香港?真相是→

(中新财经彭婧如)日前,“硅谷银行和瑞信‘暴雷’后,曝大量华人资产从瑞士美国撤离,中国香港是首选目...

03-24 06:16:28

全球热点!吉林大学专科分数线_吉林大学专科

1、吉林大学开设的专科专业有:财经大类:信用管理;2、制造大类:机电一体化技术;3、文化教育大类:应...

03-24 01:57:21

建行深圳分行啥情况?一年来至少6名中高层落马!刚刚,原副行长赵芝然被查……

建行深圳分行啥情况?一年来至少6名中高层落马!刚刚,原副行长赵芝然被查……

03-23 22:22:21

全球头条:高级工程师报考条件有哪些

高级工程师报考条件为:熟知本专业知识体系;具有运用本专业知识解决重大技术问题的能力;了解本专业国...

03-23 21:57:42

全球热讯:欧派家居:3月21日至3月22日公司高管姚良柏减持公司股份合计95.31万股

证券之星讯,根据3月23日市场公开信息、上市公司公告及交易所披露数据整理,欧派家居(603833)最新董监...

03-23 20:17:31

万兴科技旗下万兴爱画上线文本辅助输入功能 用“咒语”让AI绘画更聪明

近日,创意软件A股上市公司万兴科技(300624 SZ)旗下AI绘画应用万兴爱画,全新上线文本辅助输入功能:“咒...

03-23 18:42:01

世界观焦点:2023上海促消费放大招:“政策+活动”双轮驱动,15项政策,一节六季!

上海市政府新闻办3月23日下午举行新闻通气会。会上,市商务委介绍了《关于我市进一步促进和扩大消费的若...

03-23 17:35:01

全球即时:17元的盒饭,成了香港穷人的救命稻草

香港,公认的美食之都。长久以来,美食是统一香港市井文化和精英文化的纽带。在中环打工的高级白领,也...

03-23 16:15:19

银屑病初期手上_手上银屑病如何护理 天天快播报

银屑病初期手上?一、手部银屑病初期发病症状银屑病初期症状的出现一般是患者的皮肤上出现红色丘疹或斑...

03-23 15:23:22

今日快看!科鲁兹质量怎么样?

新一代科鲁兹可谓是改投换面,从外观到内饰,在到发动机、变速箱,全都是通用全新一代的产品。在这个档...

03-23 14:28:57

中京电子:公司珠海富山工厂处于产能与产品结构提升阶段,产能利用率尚不足 今日视点

每经AI快讯,有投资者在投资者互动平台提问:一季度马上就过去了,珠海富山新厂有什么起色么?跟去年四...

03-23 14:03:32

当前通讯!生育保险不满12个月交满后可以领生育津贴吗?2023生育保险报销范围包括哪些?

生育险不满一年就白交了吗?生育险的保险范围包括哪些?生育险可以报多少钱接下来跟社保网小编一起来看...

03-23 12:05:40

环球观点:中端机卷王来了!真我GT Neo5 SE定档4月3日

今日,realme真我手机官宣,真我GTNeo系列新成员真我GTNeo5SE,将于4月3日14点正式发布。官方还公布了新...

03-23 10:56:45

4月1日起广西南宁至香港高铁恢复开行_时快讯

央视新闻客户端报道记者从中国铁路南宁局集团有限公司了解到,4月1日起,铁路部门将逐步增开广深港高铁...

03-23 09:40:02

环球热议:邵东市气象局发布雷雨大风蓝色预警【Ⅳ级/一般】

据国家突发事件预警信息发布网:邵东市气象台2023年3月23日6时22分发布雷雨大风蓝色预警信号:预计邵东...

03-23 07:55:04

qq空间关闭方法

1、首先进入qq空间关闭申请,需要填写我们需要关闭的qq好和密码,这样才可以完成关闭qq空间;输入好之后...

03-23 07:10:28

癞蛤蟆的功效与作用及副作用_癞蛤蟆的功效与作用

1、蟾蜍可用于治疗人体的一些毒肿,如痈肿疼痛、咽喉肿痛等症状,用于治疗,可起到解毒散结的作用。2、...

03-23 04:54:59

世界头条:Shams:唐斯明日战老鹰将复出 此前已因伤缺席51场比赛!

Shams:唐斯明日战老鹰将复出此前已因伤缺席51场比赛!,老鹰,明日战,卡尔唐斯,美国篮球,明尼苏达森林狼...

03-23 00:14:04

成都“纯爱战士”后续来了,女方拿出证据,男方强硬表示可以报警

成都“纯爱战士”后续来了,女方拿出证据,男方强硬表示可以报警,表白,家暴,朴树,出轨,分手,证据,报警,...

03-22 20:55:49

天天微头条丨*ST海伦退市风险逐渐化解 海德股份又一利润增长空间逐渐打开

*ST海伦退市风险逐渐化解海德股份又一利润增长空间逐渐打开,退市,深交所,海德股份,上市公司,*st海伦

03-22 18:59:09

2020四川高校开学时间-看点

1、四川财经职业学院2020年5月25日起,按照“分期分批、错时错峰”原则组织学生有序返校。2、四川文化艺...

03-22 18:50:50

世界观焦点:中船防务(00317.HK):陈忠前辞任董事

中船防务(00317 HK)发布公告,公司董事陈忠前因退休原因,于2023年3月22日向公司董事会提交书面辞职报...

03-22 17:26:40

射手男很难在分手之后再去祝福前任 不希望对方离开自己还能得到幸福

射手男放弃感情的表现形式暗号征兆不再吃醋射手男对于自己在感情中的执着往往没有正确的概念,他们对自...

03-22 16:22:51

要做亚洲第一、打入新加坡市场的香港天团,连林俊杰合影都没要到_当前时讯

第三场演唱会之前是当地网上突然流传出林俊杰确定邀请MIRROR部分成员担任嘉宾的传闻,这让镜粉(MIRROR...

03-22 14:50:40

快播:春耕搭上“慢火车” 驶上致富“快车道”

本文转自:凉山日报◀乘客搭乘5633次火车进城卖货。□伍秋明凉山日报全媒体记者苏勇文 图“这趟车不仅...

03-22 12:44:31

晚上锻炼身体器材_晚上锻炼身体好吗_观速讯

1、晚饭后适当的运动对你的健康有好处。2、晚饭后1-2小时散步、散步,都有利于身心健康。3、慢速运动或...

03-22 10:46:18

国城矿业(000688)3月21日主力资金净买入1363.36万元-世界最新

截至2023年3月21日收盘,国城矿业(000688)报收于16 29元,上涨5 51%,换手率0 66%,成交量7 33万手,成交额1 18亿元。

03-22 09:05:44

郑州银行(002936):郑州银行股份有限公司关于召开2023年第一次临时股东大会,审议关于选举赵飞先生为郑州银行股份有限公司第七届董事会执行董事的议案

郑州银行(002936)(002936):郑州银行股份有限公司关于召开2023年第一次临时股东大会,审议关于选举赵飞...

03-22 05:43:06

钟南山院士最新预判:预判在2023年3月初,新冠疫情将会趋于平稳-全球新消息

钟南山院士最新预判:预判在2023年3月初,新冠疫情将会趋于平稳,封控,钟老,非典,小编,战区,钟南山,新冠...

03-22 00:55:43

【世界聚看点】舍得酒业: 舍得酒业关于2023年度公司及子公司申请授信额度并为全资子公司提供融资担保的公告

舍得酒业:舍得酒业关于2023年度公司及子公司申请授信额度并为全资子公司提供融资担保的公告

03-21 21:24:02

世界快报:ts人妖高颜值御姐喷水_ts人妖

1、Ts是第117号元素的缩写。2、2、Ts原子序数是117,属于卤素之一。3、由于相对论性效应,化学性质(如...

03-21 18:57:25

东星医疗:公司目前经营活动一切正常

有投资者在投资者互动平台提问:公司的主打的吻合器在国内市场占有率大概是多少?今年有没有打开更多的...

03-21 16:50:00

环球热议:近视手术痛不痛?做完多久可以正常用眼?

近视手术已经被很多人熟知,依然会有很多的近视患者对近视手术本身有着诸多担心和疑虑,今天重庆华厦眼...

03-21 15:08:06

电池进入CTC时代,软包电池如何做大?

芝能汽车出品随着动力电池和电动汽车的产品配合越来越深入,电池应该如何最优化,如何适应更多的车用动...

03-21 12:54:32

速讯:中国罐头在海外多国热销具体详细内容是什么

中国罐头在海外多国热销今天的热度非常高,现在也是在热搜榜上了,那么具体的中国罐头在海外多国热销是...

03-21 10:59:00

融资最新持仓曝光!加仓电子、建筑装饰、机械设备 天天看热讯

上交所融资余额报7876 92亿元,较前一交易日增加13 09亿元;深交所融资余额报7079 16亿元,较前一交...

03-21 09:07:17

今日要闻!江苏博云(301003)2022年年报简析:净利润减15.93%

据证券之星公开数据整理,近期江苏博云(301003)发布2022年年报。根据财报显示,本报告期中江苏博云净...

03-21 06:11:17

国内HPV疫苗需求持续增长 万泰生物2022年净利润接近翻倍-实时

3月20日晚间,万泰生物发布2022年年度报告,报告期内公司实现营业收入111 85亿元,同比增长94 51%;实...

03-21 01:30:33

胱氨酸鱼肝油维生素b6的作用_胱氨酸鱼肝油维生素b6的功效
网页制作的基本步骤 天天新资讯
河南省发改委副主任夏志胜一行赴兰考县三义寨乡开展调研-天天热消息
前沿热点:【全球独家】被昔日合作搭档冯淬帆怒斥“作品害了很多人”,王晶发声回应
研究表明肠道细菌对神经发育的重要性
【新要闻】甘肃学考等级怎么划分
从昌平怎么去朝阳体育中心 当前滚动
坐飞机托运行李规定 环球关注
【W解读】美联储加息进入尾声了吗?泓德基金提醒:警惕高利率环境下美国金融体系的脆弱性 全球百事通
观热点:郝伟敲定新赛季鲁能9人离队名单,三大亚冠主力在列,刘军帅领衔
环球观点:最高检印发发挥检察技术作用提升新时代公益诉讼办案质效的典型案例检察技术助力提升公益诉讼办案质效
当前通讯!世界富豪们正把钱从美国、瑞士转到香港?真相是→
全球热点!吉林大学专科分数线_吉林大学专科
建行深圳分行啥情况?一年来至少6名中高层落马!刚刚,原副行长赵芝然被查……
全球头条:高级工程师报考条件有哪些
全球热讯:欧派家居:3月21日至3月22日公司高管姚良柏减持公司股份合计95.31万股
万兴科技旗下万兴爱画上线文本辅助输入功能 用“咒语”让AI绘画更聪明
世界观焦点:2023上海促消费放大招:“政策+活动”双轮驱动,15项政策,一节六季!
全球即时:17元的盒饭,成了香港穷人的救命稻草
银屑病初期手上_手上银屑病如何护理 天天快播报
今日快看!科鲁兹质量怎么样?
中京电子:公司珠海富山工厂处于产能与产品结构提升阶段,产能利用率尚不足 今日视点
当前通讯!生育保险不满12个月交满后可以领生育津贴吗?2023生育保险报销范围包括哪些?
环球观点:中端机卷王来了!真我GT Neo5 SE定档4月3日
4月1日起广西南宁至香港高铁恢复开行_时快讯
环球热议:邵东市气象局发布雷雨大风蓝色预警【Ⅳ级/一般】
qq空间关闭方法
癞蛤蟆的功效与作用及副作用_癞蛤蟆的功效与作用
世界头条:Shams:唐斯明日战老鹰将复出 此前已因伤缺席51场比赛!
成都“纯爱战士”后续来了,女方拿出证据,男方强硬表示可以报警
天天微头条丨*ST海伦退市风险逐渐化解 海德股份又一利润增长空间逐渐打开
2020四川高校开学时间-看点
世界观焦点:中船防务(00317.HK):陈忠前辞任董事
射手男很难在分手之后再去祝福前任 不希望对方离开自己还能得到幸福
要做亚洲第一、打入新加坡市场的香港天团,连林俊杰合影都没要到_当前时讯
快播:春耕搭上“慢火车” 驶上致富“快车道”
晚上锻炼身体器材_晚上锻炼身体好吗_观速讯
国城矿业(000688)3月21日主力资金净买入1363.36万元-世界最新
郑州银行(002936):郑州银行股份有限公司关于召开2023年第一次临时股东大会,审议关于选举赵飞先生为郑州银行股份有限公司第七届董事会执行董事的议案
钟南山院士最新预判:预判在2023年3月初,新冠疫情将会趋于平稳-全球新消息
【世界聚看点】舍得酒业: 舍得酒业关于2023年度公司及子公司申请授信额度并为全资子公司提供融资担保的公告
世界快报:ts人妖高颜值御姐喷水_ts人妖
东星医疗:公司目前经营活动一切正常
环球热议:近视手术痛不痛?做完多久可以正常用眼?
电池进入CTC时代,软包电池如何做大?
速讯:中国罐头在海外多国热销具体详细内容是什么
融资最新持仓曝光!加仓电子、建筑装饰、机械设备 天天看热讯
今日要闻!江苏博云(301003)2022年年报简析:净利润减15.93%
国内HPV疫苗需求持续增长 万泰生物2022年净利润接近翻倍-实时
干柠檬片泡水喝的功效_柠檬片泡水有什么功效_焦点关注
X 广告
资讯
X 广告

Copyright ©  2015-2022 中公畜牧网版权所有  备案号:沪ICP备2022005074号-18   联系邮箱:5855973@qq.com