swoole和ThinkPHP的整合

先上一份在我们系统内部的swoole整合的架构预览

├─Application                           应用目录
│  │
│  ├─Cli                                Cli模块
│  │  ├─Controller                      制器类
│  │  │  ├─StartController              TP框架加载时默认加载的控制器
│  │  │  ├─SwooleController             我们的业务逻辑写在这里面
│  │  └─ ...
├─Swoole
│  │
│  ├─log                                swoole运行日志
│  ├─Server.php                         swoole的服务代码
│  ├─swoole.php                         用于cli模式下启动和软重启swoole服务

最早测试的时候不是这样搭建的,而是把Server.php里的关于服务的东西放在了TP控制器里,在cli模式下调用

php index.php(入口文件) Swoole/start (控制器/方法)

这种模式是把swoole套在了TP里运行,也是可行的,但是总觉得启动个swoole服务为毛还要告诉TP一声?

我们想要的一种模式是业务服务器独立运行,swoole服务作为守护进程常驻内存,当浏览器需要运行比较耗时的操作时,需要跟swoole服务进程建立长连接,当耗时的任务执行完毕时会通知浏览器已经完毕。

整个过程下来,swoole服务和业务服务不应该耦合在一起的。最完美的状态是swoole独立运行(使用swoole框架重新写耗时操作的业务逻辑代码),独立连接数据库。当浏览器执行这些任务时,就不再找业务服务器了,而是直接跟swoole服务打交道。

可是我们没有那么多的时间和精力,我们只能在swoole服务的进程里调用TP框架的东西,来执行我们在TP里写的代码。最后参考了网上的一些方案,选择了这样与TP结合。


代码逻辑

/Swoole/Server.php

  • 关于swoole服务的一些配置,比如监听地址,端口号(默认为9501),和一些基础配置

  • 一些回调函数,里面的代码注释很完整,可以直接看代码

<?php
// +----------------------------------------------------------------------
// 2017-8-23 09:03:40
// 此次修改为只作为websocket的服务端
// +----------------------------------------------------------------------
class Server{protected $swoole;// 监听所有地址protected $host = '0.0.0.0';// 监听 9501 端口protected $port = 9501;// 配置项protected $option = [//设置启动的worker进程数'worker_num' => 2,//task进程的数量'task_worker_num' => 4,//指定task任务使用消息队列模式,3表示完全争抢模式,task进程会争抢队列,无法使用定向投递'task_ipc_mode' => 3,//task进程的最大任务数'task_max_request' => 1000,// 守护进程化'daemonize'  => false,// 监听队列的长度'backlog'    => 128,//绑定uid时用'dispatch_mode' => 5,//设置日志路径'log_file' => SWOOLE_LOG_PATH,];protected function init(){//异步非阻塞多进程的websocket$this->swoole = new swoole_websocket_server($this->host, $this->port);$eventList    = ['Open', 'Message', 'Close', 'HandShake' , 'Task', 'Finish' , 'WorkerStart' , 'Receive'];// 设置参数if (!empty($this->option)) {$this->swoole->set($this->option);}// 设置回调foreach ($eventList as $event) {if (method_exists($this, 'on' . $event)) {$this->swoole->on($event, [$this, 'on' . $event]);}}}public function start(){$this->init();$this->swoole->start();}public function getHost(){return $this->host;}public function getPort(){return $this->port;}/*** [onOpen 建立连接时的回调函数]* @method onOpen* @param  swoole_server       $serv [description]* @param  swoole_http_request $req    [description]* @return [type]                      [description]*/public function onOpen(swoole_server $serv, swoole_http_request $req){//将连接绑定到uid上面if(!empty($req->get)&&$req->get['uid']){$serv->bind($req->fd , $req->get['uid']);}}/*** [onMessage 接收到socket客户端发送数据的回调函数]* @method onMessage* @param  swoole_server          $serv [description]* @param  swoole_websocket_frame $frame  [description]* @return [type]                         [description]*/public function onMessage(swoole_server $serv,  swoole_websocket_frame $frame){//收到数据时处理数据//根据收到的cmd名字去调用指定的方法$receive = json_decode($frame->data,true);//为了避免数据处理量过大阻塞当前进程,导致服务响应变慢,我们把耗时的操作扔到TaskWorker进程池中执行//当要执行的方法存在并且已经在swoole_log表里备案过的可以丢到task进程池$swooleLog = D('SwooleLog');$swooleController = A('Swoole');//$receive['args']['id']是业务服务器那边数据库SwooleLog表里的idif (method_exists($swooleController, $receive['cmd']) && $receive['args']['id']) {$task_id = $serv->task($receive);//记录task_id信息//...其他你想要做的精细化处理}else{if($receive['cmd'] === 'reload'){//利用Swoole提供的柔性终止/重启的机制$rs = $serv -> reload();$serv->push($frame->fd , $rs);}elseif($receive['args']['id']){$returnData = $this->_returnStr('submit_error');$serv->push($frame->fd , $returnData);}elseif(method_exists($this, $receive['cmd'])){$this->{$receive['cmd']}($serv , $frame);}}}/*** [onTask 在task_worker进程池内被调用时的回调函数]* @method onTask* @param  swoole_server $serv          [description]* @param  int           $task_id       [description]* @param  int           $src_worker_id [description]* @param  mixed         $data          [description]* @return [type]                       [description]*/public function onTask(swoole_server $serv, $task_id, $src_worker_id, $data){//记录任务开始执行的时间//...自己发挥  我们项目的业务逻辑部分已经删除//try{$swooleController = A('Swoole');$rs = $swooleController->{$data['cmd']}($data['args']);return json_encode(['id'=>$data['args']['id'] , 'status' => true , 'other' => $rs]);}catch(\Exception $e){return json_encode(['id'=>$data['args']['id'] , 'status' => false , 'other' => $e->getMessage()]);}}/*** [onFinish 任务执行完毕时的回调函数]* @method onFinish* @param  swoole_server $serv    [description]* @param  int           $task_id [description]* @param  string        $data    [description]* @return [type]                 [description]*/public function onFinish(swoole_server $serv, $task_id, string $data){$rs = json_decode($data , true);$swooleLog = D('SwooleLog');//...//通知用户该任务已经执行完毕了 可以来查看数据了//检查客户端链接是否存在 如果存在的话发送消息$returnData = $this->_returnStr('task_excute_success');foreach($serv->connections as $fd){$conn = $serv->connection_info($fd);//根据uid判断当前连接是活跃的//这里是业务服务器那边能取到的用户信息,这里已经删除,保护我们的项目$serv->push($fd , $returnData);}}/*** [onWorkerStart 为了应用能热加载 把框架的东西放到worker进程启动]* @method onWorkerStart* @param  swoole_server $server    [description]* @param  [type]        $worker_id [description]* @return [type]                   [description]*/public function onWorkerStart(swoole_server $server, $worker_id){// 定义应用目录define('APP_PATH', '../Application/');// 定义应用模式define('APP_Mode', 'cli');define('BIND_MODULE','Cli');// 引入ThinkPHP入口文件require '../ThinkPHP/ThinkPHP.php';}/*** [_returnStr 返回给客户端的数据]* @method _returnStr* @param  [type]     $type [description]* @return [type]           [description]*/private function _returnStr($type){switch ($type) {case 'submit_success':$returnData = ['code' => 202,'info' => '任务已经提交,请等待服务器计算数据!'];break;case 'submit_error':$returnData = ['code' => 404,'info' => '任务提交失败,请联系管理员进行处理!'];break;case 'task_excute_success':$returnData = ['code' => 200,'info' => '任务执行完毕!'];break;}return json_encode($returnData);}/*** [clients 获取所有的客户端连接信息,返回我们的uid]* @method clients* @return [type] [description]*/public function clients(swoole_server $serv , swoole_websocket_frame $frame){//...$serv->push($frame->fd , json_encode($serv->connections));}public function __call($method, $args){call_user_func_array([$this->swoole, $method], $args);}
}

/Swoole/swoole.php

是一个面向cli编程的代码,主要提供了start和reload两个命令

#!/bin/env php
<?php
/*** 定义项目根目录&swoole-task pid*/
define('SWOOLE_PATH', __DIR__);
define('SWOOLE_LOG_PATH', SWOOLE_PATH . DIRECTORY_SEPARATOR . 'log' . DIRECTORY_SEPARATOR . 'Swoole' . '.log');/*** 加载 swoole server*/
include SWOOLE_PATH .  DIRECTORY_SEPARATOR . 'Server.php';//提示帮助信息
if ($argc != 2 || in_array($argv[1], array('--help', '-help', '-h', '-?'))) {echo <<<HELP
用法:php swoole.php 选项 ... 可选的命令[start|reload|list]--help|-help|-h|-?  显示本帮助说明选项说明start,  启动swoole服务[默认监测9501端口]reload, 柔性重启所有workder进程list,   查看当前所有连接的客户端数HELP;exit;
}//执行命令行选项
switch($argv[1]){case 'start':start();break;case 'reload':reload();break;case 'list':clients();break;default:exit("输入命令有误 : {$argv[1]}, 请查看帮助文档\n");break;
}//启动swoole服务
function start(){$server = new Server();$server->start();
}//柔性重启swoole服务
function reload(){echo "正在柔性重启swoole的worker进程..." . PHP_EOL;try {$server = new Server();$port = $server->getPort();$host = '127.0.0.1';$cli = new swoole_http_client($host, $port);$cli->set(['websocket_mask' => true]);$cli->on('message', function ($_cli, $frame) {if($frame->data){exit('swoole重启成功!'.PHP_EOL);}});$cli->upgrade('/', function ($cli) {$cli->push(json_encode(['cmd' => 'reload']));});} catch (Exception $e) {exit($e->getMessage() . PHP_EOL . $e->getTraceAsString());}
}function clients(){try {$server = new Server();$port = $server->getPort();$host = '127.0.0.1';$cli = new swoole_http_client($host, $port);$cli->set(['websocket_mask' => true]);$cli->on('message', function ($_cli, $frame) {$users = json_decode($frame->data , true);if(empty($users)){echo '当前没有客户端连接'.PHP_EOL;}else{foreach($users as $user){echo '---'.$user.PHP_EOL;}}exit();});$cli->upgrade('/', function ($cli) {$cli->push(json_encode(['cmd' => 'clients']));});} catch (Exception $e) {exit($e->getMessage() . PHP_EOL . $e->getTraceAsString());}
}

存在的问题

0.以上的代码是从项目里摘出来的,大体思路还在,业务部分代码删除了。不保证正常运行,但是问题不大,如果报错了聪明的你一定一看就知道是什么错误。

1.由于我们将TP框架的东西放在workstart回调函数里启动,这里只要启动worker进程和task进程,都会加载一次TP框架的东西到内存里,对内存的占用问题还需要仔细研究。

2.目前还不支持那些不支持HTML5 WebSocket的浏览器 我会尽快想办法解决。用flash模拟socket请求的方法没有试成功,近期重新再搞一波。

查看全文
如若内容造成侵权/违法违规/事实不符,请联系编程学习网邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!

相关文章

  1. TFS 2010 使用手册(二)项目集合与项目

    1.项目集合 1.1 项目集合创建打开TFS管理控制台,点击“团队项目集合”。图1点击“团队项目集合”图2 点击“创建集合”然后按照向导一步步完成项目集合的创建。 1.2 项目集合的删除选中项目集合,在“常规”页中点击“分离集合”,完成后到SQL Server中把对应的项目集合数据库…...

    2024/4/15 6:41:42
  2. 病毒木马查杀实战第008篇:熊猫烧香之病毒查杀总结

    前言 之前用了六篇文章的篇幅,分别从手动查杀、行为分析、专杀工具的编写以及逆向分析等方面,对“熊猫烧香”病毒的查杀方式做了讨论。相信大家已经从中获取了自己想要的知识,希望大家在阅读完这几篇文章后,能够有一种“病毒也不过如此”的感觉,更希望这些文章能够…...

    2024/4/15 6:41:42
  3. 2017年linux运维人员必会开源运维工具体系

    2016年linux运维人员必会开源运维工具体系linux运维人员必会开源运维工具体系说明:不同的技术人员,不同的阶段确定知识边界非常重要,否则,就像马拉车,不知道终点在哪,累死也达不到目标。新手必会用深黄色(8-15k)标记,老鸟必会深黄色+浅蓝色(15-25K)标记==============…...

    2024/3/13 22:42:07
  4. win7下安装ghostXP

    已经在WIN7下,用GHOST将XP还原到其他盘,但如何引导启动GHOST、WIN、引导我C盘先是WIN7,然后我把D盘,GHOST了XP。我的XP是用GHOST装的,在GHOST里面把GHO档案复制过去后,重启,就进到WIN7里面了,没有双系统启动选择的菜单,网上有个光标在闪听说最好的解决方法,就是用光碟…...

    2024/4/15 6:42:07
  5. 计算机安装双系统

    这里只介绍安装xp和windows7的双系统 (因为Vista速度上远远不如xp,在华丽、稳定、实用、版本上又不如windows7,所以我觉得xp和Vista、Vista和windows7是没有必要安装这样的双系统),而且是xp和win7在不同的分区,因为以后重装任一个系统也容易,或者后悔了可以删除其中的一个…...

    2024/4/5 21:38:10
  6. 2010年系统分析师考点详解:开源软件的知识产权问题

    开源软件的知识产权问题 开源软件的知识产权表现在下列五个方面:1.著作权(或版权)2.专利权3.商标权4.商业秘密 5.反不正当竞争(一)版权自由/开源软件是一种有版权的软件,自由/开源软件是一种得到许可的软件。自由/开源软件许可协议(或许可证)是其版权实施的延伸。自由/开源软…...

    2024/4/18 17:08:11
  7. 使用TFS2010管理敏捷项目生命周期-系列指南3 工作项跟踪,以及用VS2010,excel和web方式使用的区别

    TFS的工作项,以及用VS2010,excel和web方式使用的区别 TFS的工作项跟踪(Work Item Tracking)是研发项目管理的核心内容. 什么是工作项?如何理解工作项? 工作项就是TFS团队中所有需要管理的信息项,比如需求项,任务项,故障项,测试用例项,… 。在TFS中, 我们认为所有信息都是条目…...

    2024/4/18 12:18:44
  8. 手动清除最近横行的熊猫烧香病毒

    在动手查杀熊猫烧香病毒之前,强烈建议先注意以下四点: * 1.本文包含两种熊猫烧香病毒变种的描述,请注意查看病毒症状,根据实际情况选用不同的查杀方法。 * 2.对于被熊猫烧香病毒感染的.exe可执行文件,推荐先备份,再修复! * 3.找回被熊猫烧香病毒删除的ghost…...

    2024/4/15 6:41:57
  9. 解决双启动GRLDR missing故障的方法

    昨天在XP上装了WIN7,一切正常,但回到XP中删除了一键还原软件之后,系统启动菜单丢失,开机时出现GRLDR missing的字样。不用说是因为那个版本比较老的一键还原软件没有把启动菜单修复好。只需要把启动菜单修复好即可。系统缺少的是什么文件不用去管。 将BIOS设置为从光驱启…...

    2024/4/15 6:42:02
  10. swoole基础教程-12.服务通信

    上节课我们已经完成了添加rpc服务,这节课我们来完成api和user模块之间的服务通信,在真实的业务场景中,前端都是通过域名发送请求,请求最开始是由api模块来接收处理的,并且需要的话,经过api模块转发给user模块,所以,对于一个请求来说,api模块是一定会访问到的,user模块等却不一定…...

    2024/4/14 21:33:37
  11. Mysql如何启动BDB引擎

    这是bbs.csdn.net上某网友的提问,起初觉得挺简单,但最终也搞了3个小时才获得完整答案。个人从中获得不少知识,于是写出来与各位分享。BDB引擎介绍Sleepycat Software给MySQL提供Berkeley DB事务性存储引擎。这个存储引擎典型被简称为BDB。对BDB存储引擎的支持包括在MySQL源码…...

    2024/4/14 21:33:38
  12. swoole基础教程-1.简介

    大家好,本课程是为了帮助对于swoole有兴趣的入门者能够更快的熟悉和掌握swoole,同时也是对自己学过知识的回顾和强化,同时希望通过本人的抛砖引玉,能够让更多人有所收获. 本课程的目的主要有两个:掌握swoole的基础用法 基于swoole实现RPC调用在完成课程目标的过程中,因为维护管…...

    2024/4/14 21:33:40
  13. 最受IT公司欢迎的50款开源软件

    过去十年间,许多科技公司已开始畅怀拥抱开源。许多公司使用开源工具来运行自己的 IT 基础设施和网站,一些提供与开源工具相关的产品和服务,或基于开源工具而建的产品和服务,还有一些在为开源代码贡献代码或支持开源项目。Black Duck 在 2015 年的一项调查发现,78% 的企业组…...

    2024/4/14 21:33:34
  14. BDB数据库合并工具

    前一段时间开发了一个BDB数据库合并的工具,本以为通过BDB自带的DbDump和DbLoad就完美解决了,要上线的时候测试一个致命的Bug:合并后BDB数据的顺序不正确。问题虽然已经解决,但过程却很戏剧化。 1、数据顺序的问题,首先想到的排序类 Comparator ,而且原始库也有这个函数直…...

    2024/4/19 8:46:53
  15. windows server 2008的安装

    系统简介Windows Server 2008是微软一个服务器操作系统的名称,它继承WindowsServer 2003。Windows Server 2008在进行开发及测试时的代号为"Windows Server Longhorn"。windows server 2008是迄今为止最灵活、最稳定的windows 操作系统。现在最新的windows服务器版本…...

    2024/4/15 6:41:57
  16. 比较完整的熊猫烧香解决方案

    “熊猫烧香”病毒无疑成了近期互联网最热门的关键字了,网上也能找到很多个有关熊猫烧香病毒的解决办法,这些方法都显得不尽完美,再加上熊猫的变种很多,有效性就更加大打折扣了。金山毒霸反病毒专家为广大感染熊猫烧香的用户提供了一个相对完整的解决方案供大家参考。 病毒…...

    2024/4/15 6:41:42
  17. VSS2005升级到TFS2010

    准备环境,安装TFS,VSS什么的就都不说了。假设都已经安装OK了,不过这里VSS的版本可能会有问题,最好和本机的VS语言版本一致,我升级的时候就遇到这个问题,本来装的是VSS 中文版,结果第一步就出了问题,说是语言不一致,无法进行分析,只好把VSS中文版卸载了,又装了英文版…...

    2024/4/18 14:48:18
  18. TFS2010 - 强制撤销签出

    需要在服务器上执行打开“开始->程序->Microsoft Visual Studio 2010->Visual Studio Tools->Visual Studio Command Prompt (2010).exe需要管理员账号执行才行命令//查看此人在所有工作区的签出情况tf status /workspace:* /user:ab06 /s:"http://localhost:…...

    2024/4/19 19:24:58
  19. 熊猫烧香病毒文化(图:熊猫烧香QQ表情,网友PS图片)

    网友痛恨“熊猫烧香”病毒 出10万美金通缉(图)吸引我的不是这10万美金通缉令,而是其中的 熊猫烧香QQ表情图片。哈哈,熊猫烧香病毒流行的都快流行出一种文化了。第一个由计算机病毒衍生出来的文化吧。可爱又可恨的熊猫!!!!熊猫烧香表情包 以下图片均转自百度贴吧 > <…...

    2024/4/15 6:42:32
  20. 几种开源许可协议

    GNU GPL(GNU General Public License,GNU通用公共许可证)只要软件中包含了遵循GPL协议的产品或代码,该软件就必须也遵循GPL许可协议且开源、免费,因此这个协议并不适合商用软件。遵循该协议的开源软件数量极其庞大,包括Linux系统在内的大多数的开源软件都是基于这个协议的…...

    2024/4/18 15:02:37

最新文章

  1. OpenSBI初始化分析

    OpenSBI初始化分析 OpenSBI初始化启动流程&#xff1a;主要涉及三个阶段 OpenSBI底层初始化 OpenSBI初始化 启动流程&#xff1a;主要涉及三个阶段 .S汇编阶段&#xff0c;主要是Opensbi的底层初始化阶段&#xff0c;为C准备执行环境&#xff1b;设备初始化阶段&#xff0c;此…...

    2024/4/20 1:26:11
  2. 梯度消失和梯度爆炸的一些处理方法

    在这里是记录一下梯度消失或梯度爆炸的一些处理技巧。全当学习总结了如有错误还请留言&#xff0c;在此感激不尽。 权重和梯度的更新公式如下&#xff1a; w w − η ⋅ ∇ w w w - \eta \cdot \nabla w ww−η⋅∇w 个人通俗的理解梯度消失就是网络模型在反向求导的时候出…...

    2024/3/20 10:50:27
  3. MongoDB初探:安装与图形化界面保姆级使用指南

    文章目录 前言一、MongoDB下载安装下载解压配置环境变量打开mongoDB 二、配置本地MongoDB服务创建文件下载服务测试服务 三、图形化界面Compass GUINavicat GUI 总结 前言 MongoDB是一种流行的开源、面向文档的NoSQL数据库程序。与传统的关系型数据库不同&#xff0c;MongoDB将…...

    2024/4/18 21:38:43
  4. 解决npm install安装node-sass包容易失败的问题

    具体问题如下&#xff1a; npm ERR! code ERESOLVE npm ERR! ERESOLVE unable to resolve dependency tree npm ERR! npm ERR! While resolving: XXX3.4.0 npm ERR! Found: webpack5.31.2 npm ERR! node_modules/webpack npm ERR! peer webpack”^4.0.0 || ^5.0.0″ from html-…...

    2024/4/20 0:50:36
  5. 不重复数字

    map就感觉很舒服 题目描述 给定 n 个数&#xff0c;要求把其中重复的去掉&#xff0c;只保留第一次出现的数。 输入格式 本题有多组数据。 第一行一个整数 T&#xff0c;表示数据组数。 对于每组数据&#xff1a; 第一行一个整数 n。 第二行 n 个数&#xff0c;表示给定的数。…...

    2024/4/19 11:50:29
  6. 【外汇早评】美通胀数据走低,美元调整

    原标题:【外汇早评】美通胀数据走低,美元调整昨日美国方面公布了新一期的核心PCE物价指数数据,同比增长1.6%,低于前值和预期值的1.7%,距离美联储的通胀目标2%继续走低,通胀压力较低,且此前美国一季度GDP初值中的消费部分下滑明显,因此市场对美联储后续更可能降息的政策…...

    2024/4/19 14:24:02
  7. 【原油贵金属周评】原油多头拥挤,价格调整

    原标题:【原油贵金属周评】原油多头拥挤,价格调整本周国际劳动节,我们喜迎四天假期,但是整个金融市场确实流动性充沛,大事频发,各个商品波动剧烈。美国方面,在本周四凌晨公布5月份的利率决议和新闻发布会,维持联邦基金利率在2.25%-2.50%不变,符合市场预期。同时美联储…...

    2024/4/19 18:20:22
  8. 【外汇周评】靓丽非农不及疲软通胀影响

    原标题:【外汇周评】靓丽非农不及疲软通胀影响在刚结束的周五,美国方面公布了新一期的非农就业数据,大幅好于前值和预期,新增就业重新回到20万以上。具体数据: 美国4月非农就业人口变动 26.3万人,预期 19万人,前值 19.6万人。 美国4月失业率 3.6%,预期 3.8%,前值 3…...

    2024/4/19 11:57:31
  9. 【原油贵金属早评】库存继续增加,油价收跌

    原标题:【原油贵金属早评】库存继续增加,油价收跌周三清晨公布美国当周API原油库存数据,上周原油库存增加281万桶至4.692亿桶,增幅超过预期的74.4万桶。且有消息人士称,沙特阿美据悉将于6月向亚洲炼油厂额外出售更多原油,印度炼油商预计将每日获得至多20万桶的额外原油供…...

    2024/4/19 11:57:31
  10. 【外汇早评】日本央行会议纪要不改日元强势

    原标题:【外汇早评】日本央行会议纪要不改日元强势近两日日元大幅走强与近期市场风险情绪上升,避险资金回流日元有关,也与前一段时间的美日贸易谈判给日本缓冲期,日本方面对汇率问题也避免继续贬值有关。虽然今日早间日本央行公布的利率会议纪要仍然是支持宽松政策,但这符…...

    2024/4/19 11:57:52
  11. 【原油贵金属早评】欧佩克稳定市场,填补伊朗问题的影响

    原标题:【原油贵金属早评】欧佩克稳定市场,填补伊朗问题的影响近日伊朗局势升温,导致市场担忧影响原油供给,油价试图反弹。此时OPEC表态稳定市场。据消息人士透露,沙特6月石油出口料将低于700万桶/日,沙特已经收到石油消费国提出的6月份扩大出口的“适度要求”,沙特将满…...

    2024/4/19 11:57:53
  12. 【外汇早评】美欲与伊朗重谈协议

    原标题:【外汇早评】美欲与伊朗重谈协议美国对伊朗的制裁遭到伊朗的抗议,昨日伊朗方面提出将部分退出伊核协议。而此行为又遭到欧洲方面对伊朗的谴责和警告,伊朗外长昨日回应称,欧洲国家履行它们的义务,伊核协议就能保证存续。据传闻伊朗的导弹已经对准了以色列和美国的航…...

    2024/4/19 11:58:14
  13. 【原油贵金属早评】波动率飙升,市场情绪动荡

    原标题:【原油贵金属早评】波动率飙升,市场情绪动荡因中美贸易谈判不安情绪影响,金融市场各资产品种出现明显的波动。随着美国与中方开启第十一轮谈判之际,美国按照既定计划向中国2000亿商品征收25%的关税,市场情绪有所平复,已经开始接受这一事实。虽然波动率-恐慌指数VI…...

    2024/4/19 11:58:20
  14. 【原油贵金属周评】伊朗局势升温,黄金多头跃跃欲试

    原标题:【原油贵金属周评】伊朗局势升温,黄金多头跃跃欲试美国和伊朗的局势继续升温,市场风险情绪上升,避险黄金有向上突破阻力的迹象。原油方面稍显平稳,近期美国和OPEC加大供给及市场需求回落的影响,伊朗局势并未推升油价走强。近期中美贸易谈判摩擦再度升级,美国对中…...

    2024/4/19 23:45:49
  15. 【原油贵金属早评】市场情绪继续恶化,黄金上破

    原标题:【原油贵金属早评】市场情绪继续恶化,黄金上破周初中国针对于美国加征关税的进行的反制措施引发市场情绪的大幅波动,人民币汇率出现大幅的贬值动能,金融市场受到非常明显的冲击。尤其是波动率起来之后,对于股市的表现尤其不安。隔夜美国股市出现明显的下行走势,这…...

    2024/4/19 11:58:39
  16. 【外汇早评】美伊僵持,风险情绪继续升温

    原标题:【外汇早评】美伊僵持,风险情绪继续升温昨日沙特两艘油轮再次发生爆炸事件,导致波斯湾局势进一步恶化,市场担忧美伊可能会出现摩擦生火,避险品种获得支撑,黄金和日元大幅走强。美指受中美贸易问题影响而在低位震荡。继5月12日,四艘商船在阿联酋领海附近的阿曼湾、…...

    2024/4/19 11:58:51
  17. 【原油贵金属早评】贸易冲突导致需求低迷,油价弱势

    原标题:【原油贵金属早评】贸易冲突导致需求低迷,油价弱势近日虽然伊朗局势升温,中东地区几起油船被袭击事件影响,但油价并未走高,而是出于调整结构中。由于市场预期局势失控的可能性较低,而中美贸易问题导致的全球经济衰退风险更大,需求会持续低迷,因此油价调整压力较…...

    2024/4/19 18:09:34
  18. 氧生福地 玩美北湖(上)——为时光守候两千年

    原标题:氧生福地 玩美北湖(上)——为时光守候两千年一次说走就走的旅行,只有一张高铁票的距离~ 所以,湖南郴州,我来了~ 从广州南站出发,一个半小时就到达郴州西站了。在动车上,同时改票的南风兄和我居然被分到了一个车厢,所以一路非常愉快地聊了过来。 挺好,最起…...

    2024/4/19 11:59:15
  19. 氧生福地 玩美北湖(中)——永春梯田里的美与鲜

    原标题:氧生福地 玩美北湖(中)——永春梯田里的美与鲜一觉醒来,因为大家太爱“美”照,在柳毅山庄去寻找龙女而错过了早餐时间。近十点,向导坏坏还是带着饥肠辘辘的我们去吃郴州最富有盛名的“鱼头粉”。说这是“十二分推荐”,到郴州必吃的美食之一。 哇塞!那个味美香甜…...

    2024/4/19 11:59:23
  20. 氧生福地 玩美北湖(下)——奔跑吧骚年!

    原标题:氧生福地 玩美北湖(下)——奔跑吧骚年!让我们红尘做伴 活得潇潇洒洒 策马奔腾共享人世繁华 对酒当歌唱出心中喜悦 轰轰烈烈把握青春年华 让我们红尘做伴 活得潇潇洒洒 策马奔腾共享人世繁华 对酒当歌唱出心中喜悦 轰轰烈烈把握青春年华 啊……啊……啊 两…...

    2024/4/19 11:59:44
  21. 扒开伪装医用面膜,翻六倍价格宰客,小姐姐注意了!

    原标题:扒开伪装医用面膜,翻六倍价格宰客,小姐姐注意了!扒开伪装医用面膜,翻六倍价格宰客!当行业里的某一品项火爆了,就会有很多商家蹭热度,装逼忽悠,最近火爆朋友圈的医用面膜,被沾上了污点,到底怎么回事呢? “比普通面膜安全、效果好!痘痘、痘印、敏感肌都能用…...

    2024/4/19 11:59:48
  22. 「发现」铁皮石斛仙草之神奇功效用于医用面膜

    原标题:「发现」铁皮石斛仙草之神奇功效用于医用面膜丽彦妆铁皮石斛医用面膜|石斛多糖无菌修护补水贴19大优势: 1、铁皮石斛:自唐宋以来,一直被列为皇室贡品,铁皮石斛生于海拔1600米的悬崖峭壁之上,繁殖力差,产量极低,所以古代仅供皇室、贵族享用 2、铁皮石斛自古民间…...

    2024/4/19 12:00:06
  23. 丽彦妆\医用面膜\冷敷贴轻奢医学护肤引导者

    原标题:丽彦妆\医用面膜\冷敷贴轻奢医学护肤引导者【公司简介】 广州华彬企业隶属香港华彬集团有限公司,专注美业21年,其旗下品牌: 「圣茵美」私密荷尔蒙抗衰,产后修复 「圣仪轩」私密荷尔蒙抗衰,产后修复 「花茵莳」私密荷尔蒙抗衰,产后修复 「丽彦妆」专注医学护…...

    2024/4/19 16:57:22
  24. 广州械字号面膜生产厂家OEM/ODM4项须知!

    原标题:广州械字号面膜生产厂家OEM/ODM4项须知!广州械字号面膜生产厂家OEM/ODM流程及注意事项解读: 械字号医用面膜,其实在我国并没有严格的定义,通常我们说的医美面膜指的应该是一种「医用敷料」,也就是说,医用面膜其实算作「医疗器械」的一种,又称「医用冷敷贴」。 …...

    2024/4/19 12:00:25
  25. 械字号医用眼膜缓解用眼过度到底有无作用?

    原标题:械字号医用眼膜缓解用眼过度到底有无作用?医用眼膜/械字号眼膜/医用冷敷眼贴 凝胶层为亲水高分子材料,含70%以上的水分。体表皮肤温度传导到本产品的凝胶层,热量被凝胶内水分子吸收,通过水分的蒸发带走大量的热量,可迅速地降低体表皮肤局部温度,减轻局部皮肤的灼…...

    2024/4/19 12:00:40
  26. 配置失败还原请勿关闭计算机,电脑开机屏幕上面显示,配置失败还原更改 请勿关闭计算机 开不了机 这个问题怎么办...

    解析如下&#xff1a;1、长按电脑电源键直至关机&#xff0c;然后再按一次电源健重启电脑&#xff0c;按F8健进入安全模式2、安全模式下进入Windows系统桌面后&#xff0c;按住“winR”打开运行窗口&#xff0c;输入“services.msc”打开服务设置3、在服务界面&#xff0c;选中…...

    2022/11/19 21:17:18
  27. 错误使用 reshape要执行 RESHAPE,请勿更改元素数目。

    %读入6幅图像&#xff08;每一幅图像的大小是564*564&#xff09; f1 imread(WashingtonDC_Band1_564.tif); subplot(3,2,1),imshow(f1); f2 imread(WashingtonDC_Band2_564.tif); subplot(3,2,2),imshow(f2); f3 imread(WashingtonDC_Band3_564.tif); subplot(3,2,3),imsho…...

    2022/11/19 21:17:16
  28. 配置 已完成 请勿关闭计算机,win7系统关机提示“配置Windows Update已完成30%请勿关闭计算机...

    win7系统关机提示“配置Windows Update已完成30%请勿关闭计算机”问题的解决方法在win7系统关机时如果有升级系统的或者其他需要会直接进入一个 等待界面&#xff0c;在等待界面中我们需要等待操作结束才能关机&#xff0c;虽然这比较麻烦&#xff0c;但是对系统进行配置和升级…...

    2022/11/19 21:17:15
  29. 台式电脑显示配置100%请勿关闭计算机,“准备配置windows 请勿关闭计算机”的解决方法...

    有不少用户在重装Win7系统或更新系统后会遇到“准备配置windows&#xff0c;请勿关闭计算机”的提示&#xff0c;要过很久才能进入系统&#xff0c;有的用户甚至几个小时也无法进入&#xff0c;下面就教大家这个问题的解决方法。第一种方法&#xff1a;我们首先在左下角的“开始…...

    2022/11/19 21:17:14
  30. win7 正在配置 请勿关闭计算机,怎么办Win7开机显示正在配置Windows Update请勿关机...

    置信有很多用户都跟小编一样遇到过这样的问题&#xff0c;电脑时发现开机屏幕显现“正在配置Windows Update&#xff0c;请勿关机”(如下图所示)&#xff0c;而且还需求等大约5分钟才干进入系统。这是怎样回事呢&#xff1f;一切都是正常操作的&#xff0c;为什么开时机呈现“正…...

    2022/11/19 21:17:13
  31. 准备配置windows 请勿关闭计算机 蓝屏,Win7开机总是出现提示“配置Windows请勿关机”...

    Win7系统开机启动时总是出现“配置Windows请勿关机”的提示&#xff0c;没过几秒后电脑自动重启&#xff0c;每次开机都这样无法进入系统&#xff0c;此时碰到这种现象的用户就可以使用以下5种方法解决问题。方法一&#xff1a;开机按下F8&#xff0c;在出现的Windows高级启动选…...

    2022/11/19 21:17:12
  32. 准备windows请勿关闭计算机要多久,windows10系统提示正在准备windows请勿关闭计算机怎么办...

    有不少windows10系统用户反映说碰到这样一个情况&#xff0c;就是电脑提示正在准备windows请勿关闭计算机&#xff0c;碰到这样的问题该怎么解决呢&#xff0c;现在小编就给大家分享一下windows10系统提示正在准备windows请勿关闭计算机的具体第一种方法&#xff1a;1、2、依次…...

    2022/11/19 21:17:11
  33. 配置 已完成 请勿关闭计算机,win7系统关机提示“配置Windows Update已完成30%请勿关闭计算机”的解决方法...

    今天和大家分享一下win7系统重装了Win7旗舰版系统后&#xff0c;每次关机的时候桌面上都会显示一个“配置Windows Update的界面&#xff0c;提示请勿关闭计算机”&#xff0c;每次停留好几分钟才能正常关机&#xff0c;导致什么情况引起的呢&#xff1f;出现配置Windows Update…...

    2022/11/19 21:17:10
  34. 电脑桌面一直是清理请关闭计算机,windows7一直卡在清理 请勿关闭计算机-win7清理请勿关机,win7配置更新35%不动...

    只能是等着&#xff0c;别无他法。说是卡着如果你看硬盘灯应该在读写。如果从 Win 10 无法正常回滚&#xff0c;只能是考虑备份数据后重装系统了。解决来方案一&#xff1a;管理员运行cmd&#xff1a;net stop WuAuServcd %windir%ren SoftwareDistribution SDoldnet start WuA…...

    2022/11/19 21:17:09
  35. 计算机配置更新不起,电脑提示“配置Windows Update请勿关闭计算机”怎么办?

    原标题&#xff1a;电脑提示“配置Windows Update请勿关闭计算机”怎么办&#xff1f;win7系统中在开机与关闭的时候总是显示“配置windows update请勿关闭计算机”相信有不少朋友都曾遇到过一次两次还能忍但经常遇到就叫人感到心烦了遇到这种问题怎么办呢&#xff1f;一般的方…...

    2022/11/19 21:17:08
  36. 计算机正在配置无法关机,关机提示 windows7 正在配置windows 请勿关闭计算机 ,然后等了一晚上也没有关掉。现在电脑无法正常关机...

    关机提示 windows7 正在配置windows 请勿关闭计算机 &#xff0c;然后等了一晚上也没有关掉。现在电脑无法正常关机以下文字资料是由(历史新知网www.lishixinzhi.com)小编为大家搜集整理后发布的内容&#xff0c;让我们赶快一起来看一下吧&#xff01;关机提示 windows7 正在配…...

    2022/11/19 21:17:05
  37. 钉钉提示请勿通过开发者调试模式_钉钉请勿通过开发者调试模式是真的吗好不好用...

    钉钉请勿通过开发者调试模式是真的吗好不好用 更新时间:2020-04-20 22:24:19 浏览次数:729次 区域: 南阳 > 卧龙 列举网提醒您:为保障您的权益,请不要提前支付任何费用! 虚拟位置外设器!!轨迹模拟&虚拟位置外设神器 专业用于:钉钉,外勤365,红圈通,企业微信和…...

    2022/11/19 21:17:05
  38. 配置失败还原请勿关闭计算机怎么办,win7系统出现“配置windows update失败 还原更改 请勿关闭计算机”,长时间没反应,无法进入系统的解决方案...

    前几天班里有位学生电脑(windows 7系统)出问题了&#xff0c;具体表现是开机时一直停留在“配置windows update失败 还原更改 请勿关闭计算机”这个界面&#xff0c;长时间没反应&#xff0c;无法进入系统。这个问题原来帮其他同学也解决过&#xff0c;网上搜了不少资料&#x…...

    2022/11/19 21:17:04
  39. 一个电脑无法关闭计算机你应该怎么办,电脑显示“清理请勿关闭计算机”怎么办?...

    本文为你提供了3个有效解决电脑显示“清理请勿关闭计算机”问题的方法&#xff0c;并在最后教给你1种保护系统安全的好方法&#xff0c;一起来看看&#xff01;电脑出现“清理请勿关闭计算机”在Windows 7(SP1)和Windows Server 2008 R2 SP1中&#xff0c;添加了1个新功能在“磁…...

    2022/11/19 21:17:03
  40. 请勿关闭计算机还原更改要多久,电脑显示:配置windows更新失败,正在还原更改,请勿关闭计算机怎么办...

    许多用户在长期不使用电脑的时候&#xff0c;开启电脑发现电脑显示&#xff1a;配置windows更新失败&#xff0c;正在还原更改&#xff0c;请勿关闭计算机。。.这要怎么办呢&#xff1f;下面小编就带着大家一起看看吧&#xff01;如果能够正常进入系统&#xff0c;建议您暂时移…...

    2022/11/19 21:17:02
  41. 还原更改请勿关闭计算机 要多久,配置windows update失败 还原更改 请勿关闭计算机,电脑开机后一直显示以...

    配置windows update失败 还原更改 请勿关闭计算机&#xff0c;电脑开机后一直显示以以下文字资料是由(历史新知网www.lishixinzhi.com)小编为大家搜集整理后发布的内容&#xff0c;让我们赶快一起来看一下吧&#xff01;配置windows update失败 还原更改 请勿关闭计算机&#x…...

    2022/11/19 21:17:01
  42. 电脑配置中请勿关闭计算机怎么办,准备配置windows请勿关闭计算机一直显示怎么办【图解】...

    不知道大家有没有遇到过这样的一个问题&#xff0c;就是我们的win7系统在关机的时候&#xff0c;总是喜欢显示“准备配置windows&#xff0c;请勿关机”这样的一个页面&#xff0c;没有什么大碍&#xff0c;但是如果一直等着的话就要两个小时甚至更久都关不了机&#xff0c;非常…...

    2022/11/19 21:17:00
  43. 正在准备配置请勿关闭计算机,正在准备配置windows请勿关闭计算机时间长了解决教程...

    当电脑出现正在准备配置windows请勿关闭计算机时&#xff0c;一般是您正对windows进行升级&#xff0c;但是这个要是长时间没有反应&#xff0c;我们不能再傻等下去了。可能是电脑出了别的问题了&#xff0c;来看看教程的说法。正在准备配置windows请勿关闭计算机时间长了方法一…...

    2022/11/19 21:16:59
  44. 配置失败还原请勿关闭计算机,配置Windows Update失败,还原更改请勿关闭计算机...

    我们使用电脑的过程中有时会遇到这种情况&#xff0c;当我们打开电脑之后&#xff0c;发现一直停留在一个界面&#xff1a;“配置Windows Update失败&#xff0c;还原更改请勿关闭计算机”&#xff0c;等了许久还是无法进入系统。如果我们遇到此类问题应该如何解决呢&#xff0…...

    2022/11/19 21:16:58
  45. 如何在iPhone上关闭“请勿打扰”

    Apple’s “Do Not Disturb While Driving” is a potentially lifesaving iPhone feature, but it doesn’t always turn on automatically at the appropriate time. For example, you might be a passenger in a moving car, but your iPhone may think you’re the one dri…...

    2022/11/19 21:16:57