Other

定时任务

使用SpringBoot创建定时任务非常简单,目前主要有以下三种创建方式: 一、基于注解(@Scheduled) 二、基于接口(SchedulingConfigurer) 前者相信大家都很熟悉,但是实际使用中我们往往想从数据库中读取指定时间来动态执行定时任务,这时候基于接口的定时任务就派上用场了。 三、基于注解设定多线程定时任务 一、静态:基于注解 基于注解@Scheduled默认为单线程,开启多个任务时,任务的执行时机会受上一个任务执行时间的影响。 1、创建定时器 使用SpringBoot基于注解来创建定时任务非常简单,只需几行代码便可完成。 代码如下: @Configuration //1.主要用于标记配置类,兼备Component的效果。 @EnableScheduling // 2.开启定时任务 public class SaticScheduleTask { //3.添加定时任务 @Scheduled(cron = 0/5 * * * * ?) //或直接指定时间间隔,例如:5秒 //@Scheduled(fixedRate=5000) private void configureTasks() { System.err.println(执行静态定时任务时间: + LocalDateTime.now()); } } Cron表达式参数分别表示: 秒(0~59) 例如0/5表示每5秒 分(0~59) 时(0~23) 日(0~31)的某天,需计算 月(0~11) 周几( 可填1-7 或 SUN/MON/TUE/WED/THU/FRI/SAT) @Scheduled:除了支持灵活的参数表达式cron之外,还支持简单的延时操作,例如 fixedDelay ,fixedRate 填写相应的毫秒数即可。 // Cron表达式范例: 每隔5秒执行一次:*/5 * * * * ? 每隔1分钟执行一次:0 */1 * * * ? 每天23点执行一次:0 0 23 * * ?

AMD与Intel,挑战英伟达GPU

AMD与Intel,挑战英伟达GPU 作为CPU界的霸主,英特尔对高性能GPU市场一直没有死心。从1998年和Real3D合作推出的i740独显,到2009年无故流产的Larrabee独显,再到去年公布的Xe GPU架构。任谁来都能看出,英特尔进军独立显卡市场只是时间问题。 对于NVIDIA和AMD来说,英特尔的加入听起来似乎是个坏消息。但是对于消费者而言,英特尔的加入无疑给了更多的选择。问题来了,英特尔“锐炫”系列高性能显卡究竟能够给出怎样的性能表现?英特尔能否通过在GPU市场上的发力,给友商NVIDIA和AMD持续带来压力呢? 近些年来,英特尔在独显领域可谓动作频频。他们积极扩充研发团队,接连从隔壁NVIDIA、AMD那里挖走高级人才,其中不乏AMD RTG显卡部门前负责人Raja Koduri,AMD Zen架构功勋领袖Jim Keller和NVIDIA DLSS技术人员Anton Kaplanyan等。可以看出,在11代CPU被AMD Zen 3系列处理器击败后,这一次,英特尔是希望能够做出一番成绩的。 问题在于,此次英特尔需要挑战的对手NVIDIA,在图形处理上是比AMD更加老练的对手。长期以来,全球消费级高性能显卡市场的主要份额基本被英伟达全盘占据,尽管AMD在去年推出了RX 6000系列显卡,性能已经非常接近定位相同的RTX 30系列,但是在产能和评价方面依然无法和NVIDIA抗衡。如何从根深蒂固的NVIDIA手上抢走客户,将成为英特尔面临的最大难题。 不过,对英特尔来说,好消息也是存在的。因为全球虚拟货币热度不减,以及芯片供应链的紧张,NVIDIA旗下RTX30系列高端显卡自发售以来价格便居高不下,很多消费者根本就购买不到新款显卡。在DIY市场被挖矿搞得半死,NVIDIA显卡大面积缺货的背景下,英特尔的“锐炫”独显可能会得到比正常情况更多的份额。 英特尔独显的上线,短期内受影响最大的应该是中低端显卡市场,也就是GT1030这种亮机卡,甚至还有可能威胁到GTX 1650、GTX1660这种祖传卡,但暂时应该无法在更高端显卡市场对NVIDIA和AMD构成实质性的威胁。不过对于消费者而言,独显市场多一个品牌,自然就多一份选择的空间。从二人转变成三足鼎立,还是对玩家有好处的。 本文参考文献链接 https://www.nextplatform.com/2021/09/20/esperanto-chip-drives-ml-inference-performance-and-power-efficiency/ https://mp.weixin.qq.com/s/LrbxIQ2hmNW3RPUqs1glFQ https://baijiahao.baidu.com/s?id=1708422385375788751&wfr=spider&for=pc 因为拥有强悍的GPU,英伟达在多个领域拥有强悍的竞争力,这就吸引了更多的厂商进去其专注的市场,英特尔和AMD就虎视眈眈。 Nvidia 并不是唯一一家创建了专门计算单元的公司,这些计算单元擅长支持 AI 训练的矩阵数学和张量处理,并且可以重新用于运行 AI 推理。英特尔已经收购了两家这样的公司——Nervana Systems,紧随其后的是 Habana Labs,这都是他们叫板Nvidia 的 “武器”。 英特尔是一家优秀的公司,正在追逐该公司认为在未来五年内将产生 500 亿美元的人工智能计算机会(用于训练和推理),从现在到 2027 年以 25% 的复合年增长率增长,以达到这一水平。鉴于“Ponte Vecchio”Xe HPC GPU 加速器中的大量矩阵和矢量数学,以及即将推出的“Sapphire Rapids”Xeon SP CPU 中的 AMX 矩阵数学单元中很可能有足够的推理能力,有理由想知道有多少英特尔预计出售的Gaudi训练和Goya 推理芯片。 英特尔在 2016 年 8 月完成 3.5 亿美元的 Nervana Systems 交易和 2019 年 12 月以 20 亿美元收购 Habana Labs时,在追求知识产权和人才,当然,因为这就是这场 IT 战争的打法,但一直想知道如果这些设备以及来自竞争对手 GraphCore、Cerebras、SambaNova Systems 和 Groq 的非常优雅和有趣的设计能够部署在类似于主流的东西中。私募股权投资者一直渴望搭上这辆 AI 芯汁列车,并进行了大量投资,上述四家公司迄今共筹集了 28.

多个装饰器函数执行顺序

1 def wrapper1(f1): 2 print('in wrapper1') 3 def inner1(*args,**kwargs): 4 print('in inner1') 5 ret = f1(*args,**kwargs) 6 print('111') 7 return ret 8 return inner1 9 10 def wrapper2(f2): 11 print('in wrapper2') 12 def inner2(*args,**kwargs): 13 print('in inner2') 14 ret = f2(*args,**kwargs) 15 print('222') 16 return ret 17 return inner2 18 19 def wrapper3(f3): 20 print('in wrapper3') 21 def inner3(*args,**kwargs): 22 print('in inner3') 23 ret = f3(*args,**kwargs) 24 print('333') 25 return ret 26 return inner3 27 28 @wrapper1 #3 func = wrapper1(func)即 func = wrapper2(inner2) -->f1 = inner2 -->打印in wrapper1 --> func = inner1 29 @wrapper2 #2 func = wrapper2(func)即 func = wrapper2(inner3) -->f2 = inner3 --> 打印in wrapper2 --> func = inner2 30 @wrapper3 #1 func = wrapper3(func) --> f3 = func -->打印in wrapper3 --> func = inner3 31 def func(): # 先执行离被装饰函数最近的那个装饰器 32 print('in func') 33 func() #4 func = inner1 34 #5 执行func() 即 执行inner1()-->打印in inner1 --> 执行f1()即执行inner2()-->打印in inner2-->执行f2()即执行inner3()-->打印in inner3--> 35 #6 -->执行f3()即执行func()-->打印in func-->打印333-->inner3执行完毕,返回到inner2-->打印222-->inner2执行完毕,返回到inner1--> 36 #7 -->打印111-->inner1执行完毕-->程序执行完毕 37 38 # 结果: 39 # in wrapper3 40 # in wrapper2 41 # in wrapper1 42 # in inner1 43 # in inner2 44 # in inner3 45 # in func 46 # 333 47 # 222 48 # 111 49 50 # 装饰器函数在被装饰函数定义好后立即执行。多个装饰器的调用顺序是自下往上的(装饰器装饰函数时的上下顺序)。 51 # 被装饰函数执行时,装饰器的执行顺序是从上往下的(装饰器装饰函数时的上下顺序,和装饰器函数定义顺序无关)。

证书服务(四)注销证书

创建注销列表echo 01 > /etc/pki/CA/crlnumber 获取证书编号:openssl x509 -in test.crt -noout -serial -subject 注销证书openssl ca -cert rootCA.crt \ -keyfile rootCA.key \ -revoke /etc/pki/CA/newcerts/03.pem 更新证书注销列表openssl ca -cert rootCA.crt \ -keyfile rootCA.key \ -gencrl -out /etc/pki/CA/crl/crl.pem

卸载office密钥

一、管理员身份运行命令提示行; 二、命令提示行上输入: cd C:\Program Files\Microsoft Office\Office16 弹出如下内容: C:\Program Files\Microsoft Office\Office16>cscript ospp.vbs /dstatus Microsoft (R) Windows Script Host Version 5.812 版权所有(C) Microsoft Corporation。保留所有权利。 ---Processing-------------------------- --------------------------------------- PRODUCT ID: 内容手动删除 SKU ID: 内容手动删除 LICENSE NAME: Office 21, Office21ProPlus2021VL_KMS_Client_AE edition LICENSE DESCRIPTION: Office 21, VOLUME_KMSCLIENT channel BETA EXPIRATION: 1234/1/1 LICENSE STATUS: ---NOTIFICATIONS--- ERROR CODE: 0xC004F056 ERROR DESCRIPTION: The Software Licensing Service reported that the product could not be activated using the Key Management Service (KMS).

Github不稳定的解决办法

原文链接:https://www.jianshu.com/p/34b2e8fdb45e  1:打开DNS查询工具:http://tool.chinaz.com/dns 网站截图 2:选择TTL值最低的那个,如果当前列表没有符合要求的IP,重新检测。 3:使用Win + R 组合键,在运行对话框里,复制并粘贴:C:\WINDOWS\system32\drivers\etc 网站截图 4:打开以后,选择HOSTS文件。 网站截图 5:把刚才复制的IP地址,复制到这个文件里,格式如下: # GitHub Start // 你复制的IP地址 #52.192.72.89 https://github.com # GitHub End 6:重新刷新,登入github.com TRANSLATE with x English Arabic Hebrew Polish Bulgarian Hindi Portuguese Catalan Hmong Daw Romanian Chinese Simplified Hungarian Russian Chinese Traditional Indonesian Slovak Czech Italian Slovenian Danish Japanese Spanish Dutch Klingon Swedish English Korean Thai Estonian Latvian Turkish Finnish Lithuanian Ukrainian French Malay Urdu German Maltese Vietnamese Greek Norwegian Welsh Haitian Creole Persian   TRANSLATE with COPY THE URL BELOW Back EMBED THE SNIPPET BELOW IN YOUR SITE Enable collaborative features and customize widget: Bing Webmaster Portal Back

懂得忘却,才是学习的最高境界

自从彼得·圣吉(Peter Senge)的《第五项修炼》(The Fifth Discipline)25年前问世以来,各家公司都在寻求方法,成为一家不断变革的“学习型组织”。在数字颠覆的时代里,成为一家学习型组织,已经变得比以往更重要了。不过,即便是最出色的公司,还是很难在这个方面取得真正的进步。 其中一个问题是,他们把焦点放错了。问题并非在于学习,而是在于忘却。我们在商业的策略、营销、组织、领导力等各方面都在使用一些已过时或已淘汰的模式来运营。为了接纳价值创造的新逻辑,我们首先必须忘却以往的旧逻辑。 忘却并非简单的忘记,而是选择另一种心智模式或范式的能力。当我们学习的时候,我们是在向已经熟知的事物增添新技能或知识。当我们忘却的时候,我们则是走出已有的心智模式,以便选择另一种不同的心智模式。 举个例子,去年夏天我租了一辆车,环游英国。我此前从来没有驾过这款车,因此我得学习各个控制器的布局。我还得学习左边驾驶。这一切还算容易,忘却右边驾驶才是困难的事。我必须不断提醒自己“靠左”。这就是为什么伦敦的人行横道上都会刷上“look right”字样,提醒路人向右看。想要忘却那些不再服务我们的思维习惯,其实一点也不容易。 同样的事情也发生在商业领域里。我们过去在学校里学到了许多范式,并依靠这些范式建立起自己的职业生涯,但这些范式当中有许多不是不完整,就是毫无效用。 迈克尔·波特(Michael Porter)的五力模型是一整代人学习制定策略时的必修课。在这个模型中,企业能通过削减成本、抬高价格、锁定顾客、排挤竞争对手与潜在竞争者,来取得竞争优势。波特认为,“策略的本质就是:你必须限制自己想要实现的事情”。 但是,在如今的互联网经济中,策略、价值创造与竞争优势,已经从渐进性质变成了指数性质。谷歌、优步、Airbnb、Facebook等公司在关注如何移除限制,而不是如何设定限制。他们不再试图控制提供产品的管道,而是建立平台,让别人来创造价值。他们会打造一个生态系统,让顾客、供应商与合作伙伴互相联系,以此创造网络效应。 波特的策略模型并非过时,但它毫无疑问是不完整的。忘却才能使我们看清楚,这个模型仅仅是一种可能性,而不是不容置疑的真理。正所谓:“地图非疆域。” 在营销领域里,大众传播的心智模式渗透着我们的思维。世界已变成多对多的模式了,但我们却还在套用一对多的心态。我们把一切看成是线性与事务性的东西。虽然人有多个层面,但我们还是会将人归类得一清二楚。即使顾客想要当共同创造者,我们还是把他们当作消费者。企业与顾客之间的实际接触,如今越发通过共同经历来进行,然而,我们依然瞄准顾客,向他们开展各种活动宣传,并利用各种渠道向他们推送消息。虽然顾客的历程不呈直线,但是我们还是会把人们推进一条单向的管道。 我们需要忘却营销的推进式模式,同时寻找新的替代模式。比如,与其利用关系进行推销,不如打造品牌轨道,把交易融入关系当中。与其把顾客当作消费者,我们不如通过各种角色与社会的不同层面,与顾客建立关系。我们除了主张一种价值观之外,也许也能够实现一个共同的目标。 在组织设计的领域里,我们正在目睹等级制度进化成流体网络。但是,这样的转变需要大量的忘却。我们会本能地把一个组织当成一张组织结构图看待。遇到决策的时候,我们会自然而然地把它留给上司处理。我经常听到高管们高谈阔论要“更网络化”,然而他们实际上要的是不同部门之间多多合作。若要真正变成一个网络化的组织,你所制定的决策准则,不仅要让人们的愿景和公司一致,还要让他们拥有一些自主性。然而,倘若要这么做,就要忘却管理、领导力、企业治理三方面的既有思维。 忘却过程一共有三个部分: 首先,你必须承认旧的心智模式不仅不再有意义,而且不再有效。这是一个不小的挑战,因为我们通常无法意识到自己的心智模式,就像鱼在水中不知水一样。另外,我们也许会害怕承认现有的模式逐渐过时。我们之所以能够建立名誉和事业,全因掌握了这些旧的模式。放弃这些旧模式,似乎像是要一切重头来过,从而失去已有的地位、权力或自我意识。 第二,你需要发现或创造一个能够更好地实现目标的模式。起初,你很可能会从旧模式的角度看待新模式。许多公司无法有效地使用社交媒体,因为他们仍然把社交媒体当作是分发信息的渠道。他们在思想上还没有从一对多转向多对多的模式。与其把社交媒体当作一个渠道,不如把它当作一种环境。 第三,你需要培养新的思维习惯。这个过程和创造一个新的行为习惯(如饮食习惯、高尔夫挥杆动作)没两样。你会倾向回到旧的思维模式,从而回到旧的行为方式。一个非常有用的办法,就是创造一些触发物,让你意识到自己正在使用哪一种模式。比如,当你在谈论你的顾客时,要是把他们称作“消费者”,你就要留意了:你是在使用事务性思维模式。要找出一个能够反映这份关系更具协作性质的词语。语言上的转变,有助于巩固思维上的转变。 好消息是,随着你的大脑不断适应,只要不断练习忘却,你就会更容易、更快捷地转变。(这个过程叫做“神经可塑性”。)德斯坦·桑德林(Destin Sandlin)曾利用他的“左右颠倒的脚车”进行一项实验,在实验中便可看到该过程的转变。视频中,前一刻他还不能骑脚车,下一刻就突然开窍了。 所以,当你开始忘却的时候,请对自己抱有耐心:这不是一个线性的过程。爱因斯坦曾经说过:“解决问题时,不能用创造问题时的思维。”在这个变革的时代,我们需要意识到自身的思维模式,而且要让思维模式更灵活。有些时候,入门门槛、线性宣传活动、等级控制三种渐进模式依然正确,但是我们必须要忘却它们,并且以网络效应、品牌轨道和分布式网络这样的指数模式取代它们。 而这一切,应先从忘却我们对于学习的认知开始。  

prometheus二进制部署

一、Prometheus简介 为什么使用peometheus? 容器在k8s环境中可以任意横向扩容与缩容,那么就需要监控服务能够自动对新创建的容器进行监控,当容器删除后又能及时的从监控服务中删除,而传统的zabbix的监控方式需要在每一个容器中安装启动的agent,并且容器自动发现注册及模板关联方面并没有比较好的实现方式。  (1)官网: https://prometheus.io/   (2)背景: Prometheus是由前Google工程师从2012年开始在Soundcloud以开源软件的形式进行研发的系统监控和告警的软件。自此以后,许多公司和组织都采用了Prometheus作为监控告警工具。 Prometheus的开发者和用户社区非常活跃,它现在是一个独立的开源项目,可以独立于任何公司进行维护。为了证明这一点,Prometheus于2016年5月加入CNCF基金会,成为继Kubernetes之后的第二个CNCF托管项目。  (3)优势: ◽ 由指标名称和键/值对标签标识的时间序列数据组成的多维数据模型 ◽强大的查询语言引擎PromQL ◽不依赖分布式存储,单个服务节点具有自治能力 ◽时间序列数据是服务通过HTTP协议主动拉去获得的 ◽ 也可以通过中间网关来推送时间序列数据 ◽ 可以通过静态配置文件或服务发现来获取监控指标 ◽支持多种类型的图标和仪表盘  (4)Prometheus的生态组件 ◽Prometheus Server:收集和存储时间序列数据 ◽ Client Library:客户端库,目的在于为那些期望原生提供Instrumentation功能的应用程序提供便捷的开发途径 ◽ Push Gateway:接收那些通常由短期作业生成的指标数据的网关,并支持由Prometheus Server进行指标拉取操作 ◽ Exporters:用于暴露现有应用程序或服务(不支持Instrumentation)的指标给Prometheus Server ◽ Alertmanager:从Prometheus Server接收到“告警通知”后,通过去重、分组、路由等预处理功能后以高效想用户完成告警信息发送 ◽ Data Visualization:数据可视化与数据导出,Granfana等 ◽ Service Discovery:动态发现待监控的Target,从而完成监控配置的重要组件,在容器化环境中尤为重要,该组件目前由Prometheus Server内建支持 ◽ peometheus alerting:报警通知  (5)Prometueu的架构  Prometheus Server直接从监控目标中或者间接通过推送网关来拉去监控数据,它在本地存储所有抓取到的样本数据,并对此数据执行一系列规则,以汇总和记录现有数据的新时间序列或生成告警。可以通过grafana或者其他工具来实现监控数据的可视化。  二、二进制部署peometheus监控系统 2.1 prometheus.io官网下载并解压二进制包  master节点 [root@master1 apps]# ln -sv /apps/prometheus-2.33.4.linux-amd64 /apps/prometheus ‘/apps/prometheus’ -> ‘/apps/prometheus-2.

linux - 安装win字体

cd /usr/share/fonts mkdir win cd win Windows中的字体文件夹font,复制进软件目录 win10位置在 C:\Windows\Fonts    把这里文件拷贝到其他地方,然后xshel 指令 rz 来上传到 win 目录    分别执行 sudo mkfontscale sudo mkfontdir sudo fc-cache 会生成两个文件        

python 虚拟环境

1 pip list 和pip freeze的区别 pip list # 查看已安装的依赖包 pip freeze # 冻结当前环境的依赖包 pip freeze 为什么比 pip list 的包少几个呢? 因为pip , wheel , setuptools 等包,是自带的而无法(un)install的。考虑到pip freeze的用途,所以这些包并没有显示。 保存和复制虚拟环境(不是虚拟环境也可以用): ​ pip freeze > requirements.txt 把安装模块的名字和版本号存放在文本文件中 ​ pip install -r requirments.txt 安装文本文件中的模块 2 虚拟环境的创建 虚拟环境中不重复安装标准库, 只包含第三方库. python -m venv d:\venvdir\sun 会在d:\venvdir文件夹下,创建一个文件夹sun(虚拟环境) ​ python -m venv sun 会在当前目录下(cmd提示符可以看到), 创建一个文件夹sun(虚拟环境) ​ 命令 python -m venv -h 查看venv命令帮助, --system-site-packages选项使用原环境中的第三方库