【环球新要闻】如何快速实现一个定时器
导语
定时器(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做双链路的消息投递,解决对于事件中心单点依赖的问题。
结语
这里的定时器服务目前仅用于支持境外的定时器需求,调用量级尚不大,已可满足业务基本要求。如果要支撑更高的任务量级,还需要做更多的思考和优化。随时欢迎大家和和我交流探讨。
加入我们
微信境外支付团队在不断追求卓越的路上寻找同路人,欢迎加入我们的团队。
标签:
上一篇:【全球独家】经典高干文小说推荐超经典_经典高干小说推荐
下一篇:最后一页
- 【环球新要闻】如何快速实现一个定时器
- 【全球独家】经典高干文小说推荐超经典_经典高干小说推荐
- 天天亮点!诗经风雅颂指什么
- 传承!李金羽5岁儿子2场轰6球,穿10号球衣,博主:预定国足锋线 天天新资讯
- 速讯:水果的种类有哪些_烫发的种类有哪些
- 天天速看:qq英文名昵称320个 洋气的qq英文网名
- 平安私人银行企望家郑明波:站在巨人肩膀上 健康宜居室内生态环境先行者
- 读书 | 窥见画里浮生,共情古人心境
- 清华本科生发现诺奖背景报告笔误 具体怎么回事
- 人工智能产业化应用加速(大数据观察)
- 为什么电脑没有声音了怎么处理
- 德安县水利局_环球看热讯
- 世界热点评!北京汽车:北京奔驰收入、毛利率提升 2022年公司权益持有人应占净利润41.97亿元 同比增8.8%
- 全球快报:山居杂兴
- 【全球新要闻】老河口市城管:开展周末千人“洁城”卫生大扫除
- 天天时讯:3月24日浙江地区氨纶市场行情重心偏弱
- 于明辉韩露是哪个电视剧
- 名师引领促教研 众行致远谋新篇 当前视点
- 每日快讯!【崩坏三同人】舰长?要退休了?(十五)
- 世界快看:港股电视广播跌幅扩大至10%
- 搜狐汽车全球快讯 | 恒大汽车子公司NEVS启动“冬眠计划” 将裁员95%-天天即时看
- 前沿热点:大学生造黄谣被严厉处分 不纵容是最好的警示
- 当前动态:呼和浩特市325个重点项目开复工
- 美国亚马逊公司的发展历史
- 英旗_关于英旗的简介
- 环球速看:魔豆怎么种植_魔豆的种植技巧
- 水果枇杷的功效与作用禁忌_水果枇杷的功效
- 人民金融·创新药指数涨0.91%|国产疫苗进入mRNA时代 肿瘤治疗还有多远?|天天资讯
- 中海油服: 中海油服2022年度股息分配方案公告_世界微头条
- 天天速看:德国人口面积是多少
- 世界热消息:2023阳山半程马拉松赛事信息
- 讯息:创业板当天买当天可以卖吗 卡无缘无故被冻结怎么回事
- 拜尔娜艾尼瓦尔13岁时的照片_拜尔娜
- 今天,世界目光聚焦花湖机场!
- 吉利推出全球首个共享出行定制车品牌 命名“曹操汽车”
- 复原楚国礼服现高校课堂_当前聚焦
- 天天新资讯:使徒行者3演员表介绍
- 世界今日报丨二年级上册数学口算题大全人教版_二年级上册数学口算题大全
- 甘肃省考进面名单在哪里看?
- 沈阳以更大力度优化民营企业发展环境-重点聚焦
- 如何在中国知网上下载外文文献_中国知网如何下载外文文献
- 重点聚焦!普法强基|香格里拉警方打掉一盗窃团伙 刑拘6人
- 章鱼的血液是什么颜色的? 天天新动态
- 国家电投在浙江落地全球最大碳铅储能电站 视点
- 上海市商务委:力争上海跨国公司地区总部年均新增60家 外资研发中心年均新增25家
- 国宴菜是什么菜系-今日精选
- 全球热门:展厅物料合同范本(3篇)
- 苗族传统刺绣传承人韦祖英——一针一线 指尖生“花”(工匠绝活) 全球热闻
- 巨野中行上门开户赢市民群众好评|新消息
- 全球热议:从4月份开始,微软Win11/10可选更新将改于每月第四周推送
-
全球焦点!祥生控股集团将延迟发布2022年全年业绩 股票自4月3日起停牌
3月21日晚间,祥生控股集团(02599 HK)公告称,公司预计无法按照港交所的规定在2023年3月31日前刊登2022年全年业绩。
-
即时焦点:民警搜山两小时救出迷路游客
本文转自:西宁晚报本报讯(记者李雪)春光明媚,天气晴好,正是踏青出游的好时节。不少市民会选择去户...
-
世界热头条丨中草药盐补骨脂的作用与功效_补骨脂的作用与功效
1、补骨脂的功能与功效:温肾助阳,纳气止泻。它属于补药分类下的补阳药。2、补骨脂:扁圆形肾形,一端...
-
脚英语单词怎么记(脚英语单词)_环球视点
脚英语单词怎么记,脚英语单词这个很多人还不知道,现在让我们一起来看看吧!1、ear耳朵head头nose鼻子mo...
-
全球消息!工信部通报!这55款App(SDK)存在侵害用户权益行为
工信微报官方微信公众号今日(21日)发布关于侵害用户权益行为的App(SDK)通报,内容如下:工业和信息...
-
广联达: 关于控股股东部分股份质押的公告 热点在线
广联达:关于控股股东部分股份质押的公告
-
天天报道:云从科技(688327)3月21日主力资金净卖出286.19万元
截至2023年3月21日收盘,云从科技(688327)报收于28 71元,上涨1 88%,换手率16 77%,成交量14 19万手,成交额4 01亿元。
-
92岁的默多克将迎来第五次婚姻,称“这将是我最后一次坠入爱河”
【环球网报道记者朱嘉琪】“我非常紧张。我害怕坠入爱河,但我知道这将是我的最后一次。最好是这样,我...
-
吉林省照明学会企业考察团走访拓龙照明 焦点滚动
3月18日下午,考察团一行踏上了此次参观与走访行程的第三站——广东拓龙照明科技有限公司(下称“拓龙照...
-
万马股份:3月20日融券卖出2.02万股,融资融券余额4.61亿元|当前最新
3月20日,万马股份(002276)融资买入1351 78万元,融资偿还1660 31万元,融资净卖出308 53万元,融资余额4 6亿元。
-
dd373交易平台官网_vv881交易平台 世界时讯
1、没有用过都是用的5173挺安全的楼主可以试试。本文就为大家分享到这里,希望小伙伴们会喜欢。
-
当前速递!优酷视频上传转码审核需要多久_优酷视频上传
1、1 首先,在电脑上打开优酷官网。进入主界面后,你会在右上角看到一个上传按钮,然后点击它。2、2 ...
-
世界热推荐:美股异动 | 瑞士信贷(CS.US)股价跌至1美元 与瑞银(UBS.US)达成历史性收购协议
周一,瑞士信贷(CS US)股价走低,截至发稿,该股跌50%,报1美元。此前瑞士信贷与瑞银(UBS US)达成历史...
-
金十期货3月20日讯,农业咨询机构Agrural|环球快播
金十期货3月20日讯,农业咨询机构Agrural:截至上周四,巴西2022 23年大豆收割面积占总播种面积的62%,...
-
华懋科技: 华懋科技向不特定对象发行可转换公司债券募集资金使用可行性分析报告(修订稿)
华懋科技:华懋科技向不特定对象发行可转换公司债券募集资金使用可行性分析报告(修订稿)
-
镌刻二十四节气里的江南意境
“镌录清嘉——二十四节气乔麦版画展”海报姑苏二十四节气食景图之春分(版画)乔麦“无画不年”,是苏...
-
今头条!清风头条丨长沙县湘贸社区:红色管家沉浸式感悟廉洁文化
原标题:清风头条丨长沙县湘贸社区:红色管家沉浸式感悟廉洁文化红网时刻新闻3月20日讯(通讯员李慧芳记...
-
当前通讯!英国学者:硅谷银行关闭动摇民众对美银行业信心
英国学者:硅谷银行关闭动摇民众对美银行业信心,存款,金融,银行业,英国学者,美国硅谷银行
-
当前关注:*ST紫晶盘中异动 跌9.38% 报3.38元
2023年03月20日09时25分,*ST紫晶(688086)股票出现波动,股价大幅跳水9 38%。截至发稿,该股报3 38...
-
电子商务专业介绍_电子商务是什么专业类别 世界速递
1、电子商务属于电子商务类专业。2、电子商务是2000年教育部批准设置的普通高等学校本科专业,属于电子...
-
天天即时:共谋乡村振兴幸福愿景 共绘瀑乡安顺美好蓝图——第九届安顺旅游产业发展大会侧记
共谋乡村振兴幸福愿景共绘瀑乡安顺美好蓝图——第九届安顺旅游产业发展大会侧记
-
词语后知后觉是什么意思_后知后觉的意思|全球最资讯
解答:1、后见之明是对别人没有发现的事情的敏感,你知道首先要预测的是先见之明。当别人已经知道和知道...
-
活力中国的春天 打造多样旅游消费场景-全球速看
亮马河2023开航打造多元新消费乘船游览城市夜景是怎样的体验
-
孩子的发育好坏,只需要看看“头”,几个特点说明一切|新动态
镜子要说一个孩子发育的好与坏,我们完全可以不借助外力,通过观察孩子的脑袋大小就能知道,头大的孩子...
-
全球滚动:未刷新43.5万元纪录,初代未拆封iPhone拍出37.9万元
初代未拆封iPhone拍出37 9万元
-
环球观速讯丨巴马神酒30度多少钱一瓶_巴马神酒
1、位于广西河池市巴马县工业园区,距县城3千米。2、是专业化的保健酒生产企业。3、生产的酒系列产品有...
-
苏超联赛_苏超
1、苏超是欧洲球队比较少的联赛,只有12支球队。2、不过苏超不同于其他联赛,每两支球队不是遇到两次,...
-
天天热资讯!如何抠出头发丝_抠头发丝最好的方法
1、滤镜-抽出(不过效果不佳),其次用通道(用计算来抽出发丝,这个相比,比较好用,抽出来的也比较仔...
-
一直以来,我们都被「小爱同学」那人畜无害的外表,给“骗”了
这款App,我想机友们都不陌生吧——没错,就是在机圈大名鼎鼎、名声显赫、无人不知、无人不晓的「小爱同...
-
大湾区规划大奖_大湾区规划
1、《粤港澳大湾区发展规划纲要》(OutlineDevelopmentPlanfortheGuangdong-
-
观天下!回头率爆表 图文实拍2022款奔驰GLC
[汽车之家新车图解]朋友,你有梦想吗?我相信大部分年轻人心里都有着自己的答案,有些人可能会说:我希...
-
无题-今日快讯
给一个朋友写的。(1)机制机制:盐铁论牌照-嫡子-庶子-干儿子-奴才-门生利益链输送,秘密交易。所以必...
-
3月17日基金净值:招商医药健康产业股票最新净值2.217,跌1.38%
3月17日,招商医药健康产业股票最新单位净值为2 217元,累计净值为2 217元,较前一交易日下跌1 38%。...
-
天保基建: 关于公司与控股股东对全资子公司共同增资暨关联交易事项及公司放弃优先认缴出资权的补充公告 环球观热点
天保基建:关于公司与控股股东对全资子公司共同增资暨关联交易事项及公司放弃优先认缴出资权的补充公告
-
涉案5.7亿余元,国内会员10万余人!特大跨境赌博案告破_环球百事通
3月17日,内蒙古乌兰察布市察右中旗公安局对外通报,该局成功侦破一起公安部挂牌督办的特大跨境开设赌场...
-
意甲雄起?!6支意甲球队晋级欧战 8强,历史第三...
意甲雄起?!6支意甲球队晋级欧战8强,历史第三次出现!分别是1998 99赛季(6支)和1990 91赛季(7支...
-
太辰光(300570)3月17日主力资金净买入1853.38万元
截至2023年3月17日收盘,太辰光(300570)报收于21 24元,上涨8 37%,换手率7 66%,成交量14 85万手,成交额3 09亿元。
-
观察:重磅!中壬银兴成为深圳专精特新企业
3月15日,深圳市中小企业服务局发布2022年深圳市专精特新中小企业公示名单。根据名单所示,中壬银兴成功...
-
天天热点评!3·15晚会后续丨凭几份不格材料,我们就获得了武汉美博会的展位
3月15日,央视3·15晚会的“第二枪”指向了美容针。报道中多次提及的乱象发生在2022第20届华中(武汉)...
-
本周Mysteel独立焦企库存开工数据①本周Mysteel统计独立焦企全样本:产能利用率为72.7%增0.4%;焦炭日均产量66.6增0.2,焦炭库存104.2减2.6,炼焦煤总库存994.0增8.4,焦煤可用天数11.2天增0.1天。②本周Mysteel统计全国230家独立焦企样本
本周Mysteel独立焦企库存开工数据①本周Mysteel统计独立焦企全样本:产能利用率为72 7%增0 4%;焦炭日...
-
环球看点!米芾_说一说米芾的简介
夏弥来为大家解答以下的问题,米芾,说一说米芾的简介,现在让我们一起来看看吧!1、米芾(1051年-1107...
-
第一共和银行跌幅收窄 据悉拜登政府推动大银行参与救助行动
第一共和银行(FirstRepublicBank)股价继续下跌,据悉该行正考虑包括出售在内的各种选项,在美国政府推...
-
聚焦:老市场重焕生机 “菜篮子”拎得更舒心
编前语:文明,是一座城市的风骨,赋予城市发展历久弥新的力量。成功创建全国文明城区以来,嘉定不断破...
-
快递驿站怎么加盟开店_快递驿站怎么加盟|世界消息
1、首先我们可以去支付宝官网上搜索菜鸟驿站,然后里面有一个加入的信息,我们只需要填写相应的材料。2...
-
外交部:助力非洲之角成为和平之角、合作之角、共同发展之角
汪文斌表示,外交部非洲之角特使此访的一项重要任务,就是代表中方同地区国家就推进落实“非洲之角和平...
-
湘西州开展3.15消费者权益日长江十年禁渔宣传活动 环球即时
3月15日,湘西州2023年3 15国际消费者权益日宣传咨询服务活动在吉首市举行。湘西州农业农村局、市场监...
-
大行评级 | 富瑞:平保上季表现符合预期,予目标价65港元 热点在线
格隆汇3月16日丨富瑞发研报指,中国平安(2318 HK)去年第四季除税后经营溢利同比跌14%至251亿元人民币,...
-
传化智联:3月15日融资买入803.7万元,融资融券余额5.73亿元
3月15日,传化智联(002010)融资买入803 7万元,融资偿还1438 64万元,融资净卖出634 95万元,融资余额5 67亿元。
-
每日播报!莲花计划为竞争对手保时捷开曼设计更多可用的跑车
随着莲花为今年晚些时候正式推出的EvijaEV超级跑车做好准备,这家英国跑车制造商也正在悄悄研发另一款新...
-
每日热闻!国际金融市场早知道:3月16日
【资讯导读】·美国2月PPI环比意外下降·英国财政大臣:政府有望实现经济目标·瑞士央行、瑞士金融市场...
X 关闭
X 关闭