精华内容
下载资源
问答
  • 前言:从本质上来说,同步辐射其实与同步加速器无关。同步辐射是经典电动力学的结果:根据经典电动力学定律,任何带电粒子在加速时都会向外辐射能量。电子在同步加速器的圆形... 在上世纪70年代,布鲁克海文国家...

    275503fec0155243c19c7edc81b01be2.png

    前言:从本质上来说,同步辐射其实与同步加速器无关。同步辐射是经典电动力学的结果:根据经典电动力学定律,任何带电粒子在加速时都会向外辐射能量。电子在同步加速器的圆形轨道中运动时也同样遵循这一定律。“同步辐射” 这个名字的由来是因为当粒子在圆形加速器中被加速时,束缚粒子进行圆周运动的磁场强度会随粒子动量的增加而同步增大,两者要在时间上要保持同步。

    42b07f2417d58bc4492b5d8c4614f2ee.png

          在上世纪70年代,布鲁克海文国家实验室的两位加速器物理学家——雷纳特·查斯曼和肯·格林,专门设计了一种磁体阵列,可以最大限度地提高电子束的亮度。第一代加速器,在配备上查斯曼-格林阵列后便升级成为第二代同步加速器光源。20世纪80年代开始使用的布鲁克海文国家同步加速器光源,以及位于英国达斯伯里市的同步辐射装置都属于第二代同步辐射光源。

          后来,随着中国在全球科学舞台上不断崭露头角,她也渴望参与进来。因此,在1991年中国建成了北京同步辐射装置,这是中国首个此类同步辐射光源。北京同步辐射装置使用了一种改进型查斯曼-格林阵列,但其电子源依然是来自于北京正负电子对撞机。董宇辉笑着说,这是一个具有不寻常混合性质的装置, “它是第一代光源,但却拥有着和第二代光源相同的参数。”

    本文给大家介绍原位同步辐射,包含电池,电化学,反应动力学,催化,高温

    高压,力学等方面的原位装置,感兴趣的可以关注我们。

    电池(电池原位装置条件可按需定制)

    原位透射X射线吸收谱锂空气电池(LA-TXAS)

    bee1c79a8ef83edab3abf57a3b59f563.png

     介:

    原位透射X射线吸收谱锂空气电池(LA-TXAS)是一款适用于探测同步辐射X射线吸收谱(透射模式)的原位锂空气电池,该装置主要应用于锂空气反应体系中的不同催化剂主体材料的同步辐射X射线吸收谱数据在线采集。可对其锂空气电池电极材料化学反应过程中的电子结构和几何结构演变进行实时的、在线的观察,帮助研究者揭示其相关动力学机制,实现材料的化学性能-结构/组成一体化研究。

    原位荧光X射线吸收谱锂离子电池(LIB-FXAS)

    a9e01be3974f38a4087ab4942791149e.png

     介:

    原位荧光X射线吸收谱锂离子电池(LIB-FXAS)是一款适用于原位探测X射线吸收谱(荧光模式)的锂离子电池。该装置的设计依托同步辐射光源X射线吸收谱站的Lytle盒体系,可以匹配不同光源Lytle盒,实现不同电极材料的电池体系在充放电的过程中荧光模式下X射线吸收谱数据的在线采集。

    原位透射X射线吸收谱锂离子电池(LIB-TXAS)

    4f81af6f0ef05c0c24a4e8420a43be0f.png

    简介:

    原位透射X射线吸收谱锂离子电池(LIB-TXAS)是一款可拆卸原位透射模式X射线吸收谱锂离子电池,产品顶部、中部及底部均有一X射线穿透窗口,在充放电时,X射线可通过窗口在垂直方向打入产品内部,以实时监测电池材料的物相变化,以便更深入地了解和分析实验现象和实验影响因素。(此装置改装下部分实验室XRD可实现两用)

    电化学(电化学原位装置条件可按需定制)

    电化学原位荧光X射线吸收谱反应池-III(EC-FXAS-III)

    0d3ac59f59fc4e602acc17ad08e7d7a3.png

     介:

    电化学原位荧光X射线吸收谱反应池-III(EC-FXAS-III)是一款为同步辐射X射线吸收谱线站专门设计的电催化反应池,基于EC-FXAS-II基础上改进而来。区别于EC-FXAS-II,此款装置能够进行通气处理,并进行了气密性设计,产品功能更加全面、完整。

    电化学原位X射线吸收谱反应池-VI (EC-TXAS-VI)

    9bb3e9552bd03f62c1860d8ffcecf4b4.png

     介:

    电化学原位X射线吸收谱反应池-VI (EC-TXAS-VI)是一款适用于同步辐射X射线吸收谱的原位电化学反应池。该原位电催化反应池的设计基于EC-TXAS-V型号产品改进而来,能够同时满足荧光和透射两种采集模式,更重要的是这款产品还提供了液体厚度可调节的功能,用以满足不同用户群的使用。(此装置在荧光,吸收谱可实现两用)

    反应动力学(反应动力学原位装置条件可按需定制)

    原位透射、荧光反应釜(HK-TF-250)

    e53162abfdce0777c3d1d89931994451.png

     介:

    原位透射、荧光反应釜(HK-TF-250)是一款可应用于百毫升级液体环境的透射、荧光光谱原位测试的原位测试装置。原位透射、荧光反应釜能够提供真实的原位水热环境、搅拌环境,温度、搅拌速率均可适当调节;其结构设计上则充分考虑了透射、荧光光谱的测试需求,设置了相应的光学窗口,透射窗口间距为10mm,并且在顶部设计了观察窗口,以便于过程监测;此外反应釜在底部集成了磁力搅拌,实现了反应釜内部温控、搅拌的一体化设计,并在应用软件中集成了温控和搅拌的显示及控制功能以及摄像头的监视窗口,充分满足液体环境透射、荧光光谱原位测试需求。

    高温(高温原位装置条件可按需定制)

    原位高温X射线反应装置(HT-XRD/AS-1200)

    2988a7e73637623d176acf7c12b54cdb.png

     介:

    原位高温X射线反应装置(HT-XRD/AS-1200)是一款专门为高温条件下探测样品物相结构变化而设计的原位样品台系统,能够匹配同步辐射X射线衍射和X射线吸收两类光谱表征。该装置系统主要包含有高温炉体装置,水冷系统,温度控制系统(程序控制),样品台等多个部件及相关配件。采用环境场加热方式,确保样品处于恒温点,最高使用温度1200℃。该原位装置十分适用于研究不同材料在高温变温情况下的物相结构研究,是材料科学领域、能源化学领域等众多研究领域的有力辅助手段之一。

    低温(低温原位装置条件可按需定制)

    低温荧光XAFS测试装置(LTC-XAS)

    abb0f0982f66ef33a5da121a5be95c51.png

    简 介

    低温荧光XAFS测试装置(LTC-XAS)是一款原位低温催化反应池,物质的结构和性能在低温等极端条件下可能发生极大的变化,其变化的机制,理论,材料性能,微观结构变化规律是物理、地质、材料等领域重要研究方向,原位低温催化反应池可以为样品提供低温环境,原位研究物质和材料的结构。

    高温高压(高温高压原位装置条件可按需定制)

    高温高压气固催化原位XAS装置(HTHPTC-XAS)

    72ec5be98d26200a0b0a00555731eb4d.png

    简介

    高温高压气固催化原位XAS装置(HTHPTC-XAS)是一款专门为高温高压条件下探测气固反应过程中催化剂电子结构和几何结构变化而设计开发的原位装置系统。该原位装置兼顾了同步辐射X射线吸收谱的两种常用探测模式(透射模式和荧光模式)。在实现高温高压条件的同时,还对体系设置了光窗,可在常规气固反应的基础上实现光催化反应条件。因此,该款原位装置系统是集合了多种反应体系、多种探测模式的综合型原位装置系统,应用面极广。

    光催化(光催化原位装置条件可按需定制)

    光催化原位XAFS反应池(PC-XAS-II)

    3561699a3912512c6907e2e04b8484ba.png

     介:

    光催化原位XAFS反应池(PC-XAS-II)是一款气固界面光催化原位X射线吸收谱反应池,该气固界面催化原位反应池能够提供固体催化剂和不同气体条件下的不同光谱表征手段,从而实现固体催化剂在反应过程中反应动力学机制的研究,探究催化过程中的催化机理。

    力学(力学原位装置条件可按需定制)

    原位X射线衍射拉伸装置(SD-3DXRD-200)

    749087b334d1fea8abe36f16192f6f06.png

    简介:

    原位X射线衍射拉伸装置(SD-3DXRD-200)是一款可应用于样品拉伸条件下的X射线3D衍射成像研究的测试装置。原位X射线衍射拉伸装置根据材料所需要的拉伸作用而设计,能够实现样品的拉伸测试要求;其结构设计上则充分考虑了三维X射线衍射显微成像的需求,周围设置了相应的窗口,并保证了X射线的360°入射/出射无障碍;再配合同步辐射线站的结构空间需求,能够实现360°旋转测试,在拉伸过程中,对材料的三维结构重构起到重要的数据支撑。

    压机DAC(压机装置条件可按需定制)

    10d8733a444a1ffcd93583eed4a8c59f.png

    对称式压机简介:

    1. 适合高压径向XRD实验;

    2. 可以完成X射线吸收谱实验;

    对称式压机参数: 

    金刚石支撑座垫

    WC

    压力产生机制

    加压螺丝和垫圈

    温度范围

    Piston 角度

    Cylinder角度

    90°

    侧面入射角度

    120°

    加热方式

    DAC 直径

    50mm

    DAC 高度

    43.9mm

    工作距离

    15.5mm

    另外介绍下同步辐射可能用到的辅助装置↓

    X光衰减器

    X光衰减器(XA-MS6)

    2376499d6e8a03e9b8ab5cf01a6742b0.png

    简介:

    X光衰减器(XA-MS6)是一款可应用于同步辐射光源下的X射线能量衰减应用的测试装置。X光衰减器根据同步辐射线站条件及控制需求设计,旋转盘的旋转角度可远程电控,方便X射线对光;工作条件下能够实现6种不同厚度衰减条的快速精确定位,衰减条更换方便,可以有效的节省机时。

    XAFS 测试多样品架

    XAFS 测试多样品架

    8e8c19bf20fe61e376bc24d11281ae9b.png

    简介:

    XAFS 测试多样品架(SH-XAFS-MS12)是一款可应用于多样品透射条件下的X 射线吸收精细结构(XAFS)谱研究的测试装置。XAFS测试多样品架根据XAFS 多样品测试条件设计,样品盘的旋转角度可远程电控,样品架底部配有三维手动位移台,方便X 射线对光;工作条件下能够实现12 个样品的快速精确定位,样品盘整体更换方便,可以有效的节省机时。

    关于我们

    我们拥有一支由教授、博士领衔的技术研发团队,在同步辐射技术以及应用,高温高压实验技术,高温真空设备研制方面具有多年的实验和系统集成经验,拥有多项专利及知识产权,可以根据老师实验要求按需定制,力求为您提供更专业的服务!现已和国内各大科研院所及高校达成广泛的合作,中科院高能所,金属所,物理所上海光源,北京光源等,有北大,清华,吉大,复旦,上交,南大,浙大,武大,中山大学等等。更多产品欢迎登陆网站了解。http://www.bjscistar.com

    学术交流

    52e7dd10eb1d74fa42eea943929e8880.png

    谢谢观看,点个关注和再看呗→

    展开全文
  • 通过Map/Reduce进行批处理递送到Apache Hadoop仍然是中枢环节。,但随着要从“超思维速度“分析方面获取竞争优势的压力递增,因此Hadoop(分布式文件系统)自身经历重大的发展。...为了支持这种日渐强调...

    通过Map/Reduce进行批处理递送到Apache Hadoop仍然是中枢环节。,但随着要从“超思维速度“分析方面获取竞争优势的压力递增,因此Hadoop(分布式文件系统)自身经历重大的发展。科技的发展允许实时查询,如Apache Drill, Cloudera Impala和Stinger Initiative正脱颖而出,新一代的资源管理Apache YARN 支持这些。

    为了支持这种日渐强调实时性操作,我们正发布一个新MySQL Applier for Hadoop(用于Hadoop的MySQL Applier)组件。它能够把MySQL中变化的事务复制到Hadoop / Hive / HDFS。Applier 组件补充现有基于批处理Apache Sqoop的连接性。

    这个组件(MySQL Applier for Hadoop)的复制是通过连接MySQL主服务,一旦二进制日志被提交,就读取二进制日志事务,并且把它们写到HDFS.

    mysql-applier-hdfs-hadoop-one.png

    这个组件使用libhdfs提供的API,一个C库操作HDFS中的文件。这库由Hadoop版本预编译生成的。

    它连接MySQL主服务读二进制日志,然后:

    提取发生在主服务上的行插入事件

    解码事件,提取插入到行的每个字段的数据,并使用满意的处理程序得到被要求的格式数据。

    把它追加到HDFS 中一个文本文件。

    数据库被映射为单独的目录,它们的表映射为子目录,保存在数据仓库目录。每个表的数据被写到Hive/ HDFS中文本文件(称为datafile1.txt)。数据可以用逗号格式分隔;或其他格式,那可用命令行参数来配置的。

    mysql-hdfs-hadoop-applier-two.png

    从这个blog可以了解更多有关该组设计信息。

    在这个blog已经详细讨论安装,配置,实施信息。与Hive集成也有文档。

    你也可以从这个视频教程明白它的作用

    觉得文章有用?立即:

    和朋友一起 共学习 共进步!

    猜想失败,您看看下面的文章有用吗?

    展开全文
  • 关于同步延迟原因与处理的RDS MySQL 只读实例RDS MySQL只读实例一般来说用于分担主实例的查询(Select)压力,或者用于运行OLAP类型的分析应用,避免复杂统计查询对主实例的性能影响。RDS MySQL只读实例架构图如下所示...

    关于同步延迟原因与处理的RDS MySQL 只读实例

    RDS MySQL只读实例一般来说用于分担主实例的查询(Select)压力,或者用于运行OLAP类型的分析应用,避免复杂统计查询对主实例的性能影响。

    RDS MySQL只读实例架构图如下所示:

    e63bcd6392a81a678efc34fdb6806e04.png

    因为RDS只读实例采用MySQL原生的基于Binlog的复制技术(半异步复制或异步复制),所以延迟必然会成为成立之初就存在的问题。

    由于延迟会导致只读实例与主实例的数据出现不一致的情况,进而可能造成业务上逻辑的混乱或者数据不正确。另外延迟也有可能引起Binlog数据堆积,导致只读实例空间被迅速消耗(如果主实例当前正产生大量的binlog数据),这种情况下有可能会使只读实例被锁定。

    只读实例产生延迟的原因

    1.主实例的TPS(Transaction Per Second)过高

    主实例的 TPS (Insert、Update、Delete)过高导致只读节点延迟。如下图所示:

    分析:

    由于只读节点与主实例同步采用的是单线程同步,而主实例的压力是并发多线程写入,这样在主实例高并发DML TPS 情况下非常容易出现只读实例的数据延迟,可以通过观察只读实例节点的TPS与 主实例的TPS性能数据来完成判断。

    主实例的 TPS如下图 :

    4d7727000f7865e4152001a8cad9c39b.png

    只读实例的TPS如下图图:

    52305796de3f486b620eb54573239149.png

    只读实例的延迟如下图:

    58c58c1be8fc8ae4fb295146e83091ff.png

    建议:

    排查主实例的写入压力是否正常;如果正常则需要对业务进行优化或者拆分,保证主实例的TPS不会导致只读实例出现延迟。

    2. 只读实例规格过小

    这类延迟场景经常出现在只读实例规格和主实例规格相差较大,而且只读实例上负载较重,比如只读实例上 IOPS 打满。

    分析:

    只读节点的数据为了和主节点保持同步,采用了MySQL原生的binlog复制技术,由一个IO线程和一个SQL线程来完成。IO线程负责将主库的binlog拉取到只读节点,SQL线程负责消费这些binlog日志应用到只读实例。这两个线程会消耗只读节点的IO资源,所以当只读节点IOPS配置不够的时候,则会导致只读节点的数据出现延迟。如下图所示:

    ff933cd54154511a531259d1c159e332.png

    比如下面的例子: 只读实例的 IOPS 被查询打满,导致和主实例的数据同步出现延迟。如下图所示:

    04724c88857fcf46359e8d91c0f453fb.png

    建议:

    对于这样的情况,建议用户升级只读实例规格,避免由于只读实例规格较小导致数据延迟。RDS推荐只读实例的配置大于或者等于主实例的配置。

    3. 主实例的大事务

    主实例执行一个大事务导致延迟。

    分析:

    比如在主实例执行一个涉及数据量非常大的 update、delete、insert...select、replace...select 等事务操作,生成大量的binlog数据传送到只读实例。只读实例需要花费与主实例相若的时间来完成该事务,进而导致了只读实例的同步延迟。

    比如下面的例子,在主实例上执行一个持续80秒的删除操作,会导致只读实例上出现数据延迟。如下图:

    591f2acb78250d4557b0b5b0a252c708.png

    只读实例数据延迟,如下图:

    8bd3759d701929e97f10b6249cbbe50d.png

    在只读实例出现大事务导致延迟时,通过show slave status \G 命令,可以看到 Seconds_Behind_Master 不断变化,而Exec_Master_Log_Pos 却保持不变,这样可以判断只读实例的SQL线程在执行一个大的事务或者DDL操作。

    建议:

    建议考虑将大事务拆分为小事务(比如在delete语句中增加where条件子句,限制每次删除的数据量,将一次删除操作拆分为多次数据量较小的删除操作进行),这样只读实例可以迅速的完成事务的执行,不会造成数据的延迟。如下图:6be2d3ecbedcd49d2eb2731998128e34.png

    921b4dd58f7b99e2816e791d5a08bd30.png

    4. 只读实例MyISAM引擎表

    只读实例上针对MyISAM引擎表的长时间查询,阻塞来自主实例对该表的数据同步,导致只读实例数据延迟。

    分析:

    MyISAM 引擎表读写相互冲突,同一时间读写不能并发操作,且仅支持表级锁。因此表上的长时间查询(比如SQL注入)会阻塞SQL线程应用来自主实例的该表数据变化,导致只读实例数据延迟。

    主实例: 对 MyISAM 引擎表 large_tab_02插入数据。如下图:

    49f02a4e2ead6261af3d98ac70ce7c51.png

    只读实例:存在对表 large_tab_02 的长时间查询,使SQL应用线程等待large_tab_02表级锁,导致数据步发生延迟。如下图:

    ab6ef6880c04346e4ebebbad68964551.png

    1852e49ae72386d2be6bfadc75087f97.png

    23a2516a2f954b10d1edd6fb5172da66.png

    71a2dfc77a11d8d7c3e6c9cac7563bac.png

    建议:

    如果使用只读实例,建议业务低峰期将主实例上的 MyISAM 引擎表转换为 InnoDB 引擎表(只读实例上会相应进行转换)。

    5. 主实例的DDL语句

    主实例的DDL(alter、drop、repair、create)导致只读实例延迟。

    分析:

    只读实例和主实例数据同步是串行进行的,如果DDL操作在主实例执行时间很长,那么同样在只读实例也会消耗同样的时间。比如对一张 500 万行的表添加一个字段耗费了10分钟,那么在只读实例上同样也会耗费10分钟。所以只读实例会延迟600秒。其他常见操作比如 create index、repair table、alter table add column 等。

    主实例如图:

    1b44406e70d711203214b6c7cd42df9d.png

    只读实例如图:

    0e9150ab60d490d879797126752bb344.png

    只读实例上执行的查询或未完成的事务阻塞来自主实例的DDL执行。在只读实例上执行 show processlist 命令查看SQL线程的状态为:waiting for table metadata lock.

    只读实例如图:

    b0bd2cccc92be496f399010fc1264782.png

    23be2675626daa6e276b8fe14d99117b.png

    建议:

    对于DDL直接引起的只读实例延迟,建议这些 DDL 在业务低峰期执行。

    对于来自主实例的DDL在只读实例上被阻塞的情况,需要 kill 掉只读实例上引起阻塞的会话(通常是运行时间长的查询)来恢复只读实例和主实例的数据同步。

    注:对于表原数据锁等待的原因和处理,请参考 RDS MySQL 表上Metadata lock 的产生和处理。

    6.其他

    其他只读实例出现延迟的情况:

    比如只读实例的主机IO压力出现异常,或者对无主键的表进行删除(RDS目前已经支持对表添加隐式主键,但是对于以前历史创建的表需要进行重建才能支持隐式主键)。

    7.综述

    综上所述,把目前RDS只读实例出现延迟的场景都进行了分析,可以简单归纳一下:

    当只读实例出现延迟后,

    一看只读节点IOPS定位是否存在资源瓶颈;

    二看只读节点的binlog增长量定位是否存在大事务;

    三看只读节点的ComDML性能指标,对比主节点的ComDML定位是否是主库写入压力过高导致;

    四看只读节点执行 show slave status \G,判断是否有 Waiting for table metadata lock;同时在主实例控制台 =》SQL明细 中排查下是否有 alter,repair,create等DDL操作;

    五看只读节点执行 show slave status \G,判断是否有 Waiting for table level lock; 同时通过 show full processlist; 或者 DMS =》 实例信息 =》 实例会话 检查下是否有长时间对 MyISAM 引擎表的查询。

    如果上述五看都还没有发现问题,那么在最后再检查一下只读节点是否存在无主键表的删除或者更新操作,可以通过在只读节点执行:show engine innodb status\G或者show open tables状态为in_use为1的表:

    mysql> show open tables;

    +——————–+——————————+———–+———————-+

    | Database | Table | In_use | Name_ locked |

    +————–––––+——————————+———–+———————-+

    | aixuedai_web | sd_repay | 4 | 0 |

    | mysql | slow_log | 0 | 0 |

    | dw | dw_acc_sd_expectpay | 1 | 0 |

    展开全文
  • 在很多项目业务复杂到一定程度、项目大到一定程度,就都是一些重构、优化、升级等手段,让项目更...见谅本篇博客主要介绍 异步消息队列 简要的介绍下同步消息队列本篇博客为了更明确异步消息队列和同步消息队列的...

    在很多项目业务复杂到一定程度、项目大到一定程度,就都是一些重构、优化、升级等手段,让项目更稳健;能抵挡更强的“风暴”。而 异步服务器 则也是减轻服务器压力,提高项目性能的一个常见手段之一,把一些实时性不强,而且量还比较大的业务可以异步来解决。临近年底了,丢丢哥最近工作比较忙,博客更新少了点。见谅3e3a4d19807bb4dde2a4cf3c5bb1dd3e.png

    本篇博客主要介绍 异步消息队列 简要的介绍下同步消息队列

    本篇博客为了更明确异步消息队列和同步消息队列的实现原理 以MySQL消息队列为示例,但是在真正的项目中(如果没有单独的异步服务器,则建议使用Redis消息队列)

    一、简介

    Laravel 的队列服务为不同的队列后端系统提供了一套统一的 API 。队列允许你将一个耗时的任务进行延迟处理,例如像 e-mail 发送。这能让应用程序对页面的请求有更快的响应。

    二、配置

    队列的配置文件被保存在 config/queue.php 中。但是Laravel中优先选用.env的配置在这个文件内你可以找到包含在 Laravel 中的每一种队列驱动连接设置。它们包含了数据库、Beanstalkd、IronMQ、Amazon SQS、Redis 以及提供本机使用的 synchronous 驱动。

    .env配置同步:2fcba6a7b751d6ce8355ebdbb521defe.png

    .env配置异步:4270d701e587a5dc46e3df5d74623c12.png

    另外框架也提供了 null 这个队列驱动用来丢弃队列任务。

    1.生成队列数据库表与失败队列数据库表

    本实例中是用群发email的实例,如果模仿,请配置自己的邮件服务php artisan queue:table

    php artisan queue:failed-table

    php artisan migrate

    2.创建Mysql数据(需要发邮件)7b2356ab11588da11686f732b4ff9cff.png

    3.生成队列任务php artisan make:job SendUserEmail --queued

    然后在项目的App\Jobs里面会生成一个SendUserEmail.php文件

    接下来 我们再生成一个控制器UserControllerphp artisan make:controller UserController --resource定义路由routes.phpRoute::resource('/user','UserController');编写控制器UserController<?php

    namespace App\Http\Controllers;

    use Illuminate\Http\Request;

    use App\Http\Requests;

    use App\Jobs\CreateMessage;

    use App\Jobs\SendUserEmail;

    class UserController extends Controller

    {

    ...

    ...

    /**

    * 这个方法我们用来模拟发送消息队列.

    *

    * @param int $id

    * @return \Illuminate\Http\Response

    */

    public function show($id)

    {

    //

    $datas = \DB::table('user')->where('status',1)->get();

    foreach($datas as $data){

    $job = (new SendUserEmail($data->name,$data->email));

    $this->dispatch($job);

    }

    return redirect('/user');

    }编辑队列文件SendUserEmail.php<?php

    namespace App\Jobs;

    use App\Jobs\Job;

    use Illuminate\Queue\SerializesModels;

    use Illuminate\Queue\InteractsWithQueue;

    use Illuminate\Contracts\Bus\SelfHandling;

    use Illuminate\Contracts\Queue\ShouldQueue;

    use Illuminate\Support\Facades\Mail;

    class SendUserEmail extends Job implements SelfHandling, ShouldQueue

    {

    use InteractsWithQueue, SerializesModels;

    protected $name;

    protected $email;

    /**

    * Create a new job instance.

    *

    * @return void

    */

    public function __construct($name, $email)

    {

    //

    $this->name = $name;

    $this->email = $email;

    }

    /**

    * Execute the job.

    *

    * @return void

    */

    public function handle()

    {

    // 如果参试大于三次

    if ($this->attempts() > 3) {

    \Log::info($this->name.'邮件参试失败过多');

    }else{

    // 每次进来休息3秒钟

    sleep(3);

    // 休息10秒钟

    //$this->release(10);

    $url = 'http://www.ydma.cn';

    $title = '测试邮件';

    $to = $this->email;

    // 邮件发送

    $flag = Mail::send('email.test', ['name' => $this->name, 'url' => $url], function ($message) use ($to, $title) {

    // 发送

    $message->to($to)->subject('【亲爱的程序猿】' . $title);

    });

    echo date('Y-m-d H:i:s')."\n".$to.'的邮件已发送...';

    if($flag){

    \Log::info($this->name.'邮件发送成功');

    }else{

    \Log::info($this->name.'邮件发送失败');

    }

    }

    }

    /**

    * 处理一个失败的任务

    *

    * @return void

    */

    public function failed()

    {

    \Log::error($this->name.'队列任务执行失败'."\n".date('Y-m-d H:i:s'));

    }

    }

    三、执行程序

    1.我们env是设置的database (异步消息队列)

    2.开启队列监听php artisan queue:listen

    3.或者 开启后台监听(不影响自己输入其他命令)php artisan queue:listen &

    4.也能用work 后面参数是休息时间和尝试次数php artisan queue:work connection --daemon --sleep=3 --tries=3

    5.访问网址(这个网址是我自己本地的)3718ece47c4b1e0eb18229f42bec9c46.png

    6.然后看我的Mysql的变化jobs表本来有8条队列数据需要处理fcd4c9a2c30cea93d37c792ad6f1a9c2.png

    7.然后看终端监听的变化ee40196b6d42c8f5264c5e41d0fa7189.png

    8.消息队列被一条条的推送..反观数据库jobs的变化,发现被清空了,说明队列执行完了f39c0268d374c6b02a14b9a79df4744d.png

    而且页面并不是等待邮件发完才跳转,而是发送这个队列命令后直接重定向到了user列表页面(跳转很快),这就是异步队列的整个工作流程

    当然如果你看了我之前的一片文章也可以做做全局SQL监听,你就会在日志中发现,每执行一个队列 job表里面就要执行4次命令增、删、改、查,如果是10000条数据的队列就是40000次的表操作,所以说database的消息队列用也得当心,虽然是异步的,考虑的因素还是比较多的。

    同步消息队列

    这个消息队列,说实话丢丢哥我也是用得少,为什么呢?暂时并没有发现它的应用场景的优势。

    与异步不同的是设置同步消息队列

    将.env或config/queue.php 里面的配置改成是 sync

    然后执行页面的时候发现页面等待跳转的时间很长,得所有的邮件发送完成后才会跳转页面(如果队列中有任务执行失败反复的参试 那这页面应该肯定timeout了)

    扩展思路

    1.队列有可能失败,失败的队列会写入到mysql的failed_jobs表里面:49723eff4f1e9072b2afb730130249c8.png

    2.那么如何让这些失败的队列让电脑后面自动去执行消息推送呢?也就是执行这些命令,怎么让程序自动完成10c96e242236098060011c8b6785aab7.png

    3.如果是在一个服务器中用消息队列,是不是一直要开常驻进程??那是不是有消耗?当异步到达一个程度的时候,是不是可以开服务器集群里面的异步服务器专门来做这个事??2bbe2bf68151473596476298975cdaa0.png

    希望我的博客对你们有所帮助,你的认可就是我最大的动力。。

    本文为作者原创,允许转载,转载后请以链接形式说明文章出处.

    如转载但不标明来源,后果自负。

    展开全文
  • 通过Map/Reduce进行批处理递送到Apache Hadoop仍然是中枢环节。,但随着要从“超思维速度“分析方面获取竞争优势的压力递增,因此Hadoop(分布式文件系统)自身经历重大的发展。...为了支持这种日渐强调...
  • 通过Map/Reduce进行批处理递送到Apache Hadoop仍然是中枢环节。,但随着要从“超思维速度“分析方面获取竞争优势的压力递增,因此Hadoop(分布式文件系统)自身经历重大的发展。...为了支持这种日渐强调...
  • 通过Map/Reduce进行批处理递送到Apache Hadoop仍然是中枢环节。,但随着要从“超思维速度“分析方面获取竞争优势的压力递增,因此Hadoop(分布式文件系统)自身经历重大的发展。...为了支持这种日渐强调...
  • kafka设计和原理解析

    2019-01-28 17:58:38
    文章目录副本与ISR设计follower 副本同步基于水印备份复制LEO更新机制HW更新机制缺陷基于leader epoch物理存储分区分配日志段文件索引文件位移索引文件时间戳索引文件日志留存文件格式log compaction(日志压实)处理...
  •  学校秋季开学疫情防控工作方案1 为扎实做好我校秋季学期开学工作,进一步压实学校疫情常态化防控责任落实,确保全校师生身体健康和生命安全,根据省教育厅、市教体局指示要求,特制定以下方案。 一、开学时间...
  • 下煤层开采过程中,浅埋近距煤层上煤层开采后已压实稳定的覆岩导水裂隙会二次发育,不同开采区域的覆岩导水裂隙发育程度不同。采动隔水层裂隙发育与其遇水膨胀是同步动作的。开采边界的隔水层裂隙在上煤层开采过程中...
  • 一、基本要求1、台背与锥坡回填宜同步进行2、台背与墙背1.0m范围内回填宜采用小型夯实机具压实3、台背与墙背回填,应在结构物强度达到设计强度75%以上进行4、回填范围(1)通道、涵洞工程顶部长度...
  • DNS的主从配置 DNS从服务器也叫辅服DNS服务器,如果网络上某个节点只有一台DNS服务器的话,首先服务器的抗能力是有限的,当压力达到一定的程度,服务器就可能会宕机...并实现数据的同步,这样两台服务器就都可以...
  • 目的: 让两台mysql服务器可以互为主从提供同步服务.   优点: ...1. mysql的主从复制的主要优点是同步"备份", 在从...3. 做一个双向的主从复制, 两台机器互相为主机从机, 这样, 在任何一个机器的库中写入, 都会"
  • 同时,大量的商家也完成了线上运营,逐渐开始尝试将实体店同步转移到微信平台,做起新零售小程序。商家在运营小程序的过程中,不仅可以充分发挥会员卡服务,还可以搭配拼团、秒杀、抽奖、分销、社区团购等裂变拓客。...
  • 3D电影的视差范围

    2020-05-18 09:24:19
    因为动画电影是由计算机生成,所以就不会有左右眼画面曝光、色彩不一致,反光不一致,进光,垂直视差,画面帧不同步等实拍容易产生的问题,这可以说是3D动画电影的先天优势。 《熊出没》的立体效果上,大部分画面...
  • 有关OSI七层协议详细内容 接上文 5.会话层 管理主机之间的会话进程,即负责建立、管理、终止进程之间的会话。会话层还利用在数据中插入校验点来实现数据的同步。...表示层的数据转换包括数据的加密、
  • 为了缓解压力,商家们都开始寻求新的流量入口,越来越多商家瞄准了线上运营优势,开始尝试将实体店同步转移到微信平台,做起线上新零售小程序。 为了帮助商家们在运营新零售小程序过程中遇到的用户复购率低、用户...
  • solr生成关联表索引

    2018-01-13 17:32:01
    不过关联表生成索引速度比单表索引生成速度要慢许多,,很多同学遇到建立关联表的索引的时候,子实体更新了信息之后父类对应的索引数据并不会更新,这里需要用到parentDeltaQuery属性,把从子类抓取的更新的数据,同步到...
  • MySQL-主从复制(一)

    2019-07-11 10:56:05
    如何MySQL的读写分离? MySQL主从复制的原理是啥? 如何解决MySQL主从同步的延时问题? 从面试官的心里分析 高并发这个阶段 肯定需要做读写分离 在大多网站上其实是读多写少 针对这个情况 解决方案 写一个主库 ...
  • 首先体现在内存上,单 个 Redis 的内存不宜过大,内存太大会导致 rdb 文件过大,进一步导致主从同步时全量同 步时间过长,在实例重启恢复时也会消耗很长的数据加载时间,特别是在云环境下,单个 例内存往往都是...
  • 互斥同步对性能最大的影响是阻塞的实现,挂起线程和恢复线程的操作都需要转入内核态中完成,这些操作给系统的并发性能带来了很大的压力。而在很多应用上,共享数据的锁定状态只会持续很短的一段时间。若实体机上有多...
  • Maxim Integrated Products近日推出业界首款4通道电源管理IC (PMIC)MAX8667/MAX8668,采用微型、9mm2 TQFN封装。该系列PMIC集成两路降压... 除了节省空间外,MAX8667/MAX8668的每路DC-DC转换器均内置同步整流器,可
  • 消息队列提供一个异步通信机制,消息的发送者不用一直等待,知道消息被成功处理,消息存储一队列当中,对他感兴趣的消费者或接受并处理他们; 消息队列解决的问题描述: 1.将同一个消息发送给多个感...rabbitMq:...
  • Mysql的 replication是一种多个mysql数据库做主从同步的方案,它是一个异步复制的过程,从一个主数据库(master)将数据复制 到一个或者多个从数据库(slave),我们可以将应用对于数据库写的操作写入master,而读...
  • JVM中锁优化简介

    2016-05-25 11:35:32
    互斥同步对性能最大的影响是阻塞的实现,挂起线程和恢复线程的操作都需要转入内核态中完成,这些操作给系统的并发性能带来了很大的压力。而在很多应用上,共享数据的锁定状态只会持续很短的一段时间。若实体机上有多...

空空如也

空空如也

1 2 3
收藏数 52
精华内容 20
关键字:

同步压实