Curator简单介绍

Curator是Netflix公司开源的一套zookeeper客户端框架,解决了很多Zookeeper客户端非常底层的细节开发工作,包括连接重连、反复注册Watcher和NodeExistsException异常等等,现在是Apache的开源项目。
Curator封装了很多功能(分布式锁、leader选举、分布式队列、共享计数器等等),更加简单易用。

Curator对比zookeeper原生API

  • 原生API的超时重连,需要手动操作,而Curator封装了很多重连策略,自动重连
  • 原生API不支持递归创建节点,Curator可以递归创建节点
  • 是对原生API的进一步封装,功能更多,更容易使用
  • Curator 是Fluent的API风格

Fluent风格API是一种面向对象的 API,其设计广泛依赖于方法链。它的目标是通过创建领域特定语言(DSL),来提高代码的易读性。该术语由Eric Evans和Martin Fowler于 2005 年创造

Curator提供的组件:

(马虎翻译,哈哈哈哈,大家凑合下)

GroupID/OrgArtifactID/NameDescription
org.apache.curatorcurator-recipes所有的 recipes. 依赖于client 和framework。Maven会自动拉取这些依赖项
org.apache.curatorcurator-asyncAsynchronous DSL with O/R modeling, migrations 和许多其他特性.
org.apache.curatorcurator-frameworkCurator 的高级API, 建立在 client组件之上
org.apache.curatorcurator-clientCurator Client - 替换 ZooKeeper 的原生ZooKeeper类(在原生客户端中使用此类可对zookeeper server进行一系列操作)
org.apache.curatorcurator-test包含TestingServer, TestingCluster 和一些其他的测试工具
org.apache.curatorcurator-examples各种curator 特性的示例用法。
org.apache.curatorcurator-x-discoverycurator上的服务发现的实现。
org.apache.curatorcurator-x-discovery-server可以与curator discovery一起使用的RESTful服务器。

POM文件引入依赖

直接引入curator,好像仓库里面找不到,直接引入这个就可以使用很多东西了

 <dependency><groupId>org.apache.curator</groupId><artifactId>curator-recipes</artifactId><version>5.2.0</version></dependency>

在我手动从官网下载的apache-curator-5.2.0 包中,他的pom.xml文件有如下代码,但是我部署的zookeeper服务是3.7.0的(最新版),可能curator还没适配好3.7.0的zookeeper,原生的zookeeper API已经到了3.7.0。我这里先使用curator-5.2.0做尝试。

<zookeeper-version>3.6.3</zookeeper-version>

RetryPolicy相关(重试连接)

在zookeeper 原生Java API 中,客户端与服务端的连接是没有提供连接重试机制的。如果客户端需要重连,就只能将上一次连接的Session ID与Session Password发送给服务端进行重连。而Curator框架提供了客户端与服务端的连接重试机制。

重试机制主要定义在RetryPolicy里面。
RetryPolicy接口的关系图如下图所示:
在这里插入图片描述
RetryPolicy接口是重试策略的抽象接口,allowRetry方法用来判断是否允许重试。

//重试策略的接口
public interface RetryPolicy
{/*** 当操作由于某种原因失败时调用,此方法应返回true以进行另一次尝试* retryCount – 到目前为止重试的次数(第一次为0)* elapsedTimeMs – 自尝试操作以来经过的时间(以毫秒为单位)* sleeper – 使用它来睡眠,不要调用Thread.sleep*/boolean allowRetry(int retryCount, long elapsedTimeMs, RetrySleeper sleeper);/***  * 当操作因特定异常而失败时调用,此方法应返回true以进行另一次尝试*/default boolean allowRetry(Throwable exception){if ( exception instanceof KeeperException){final int rc = ((KeeperException) exception).code().intValue();return (rc == KeeperException.Code.CONNECTIONLOSS.intValue()) ||(rc == KeeperException.Code.OPERATIONTIMEOUT.intValue()) ||(rc == KeeperException.Code.SESSIONMOVED.intValue()) ||(rc == KeeperException.Code.SESSIONEXPIRED.intValue());}return false;}
}

SleepingRetry抽象类

(实现了RetryPolicy接口,除开RetryForever和SessionFailedRetryPolicy是另外实现的RetryPolicy接口,其他的重试类都是继承的此类)

重试n次(有次数限制),重试之前先进行睡眠,睡眠时间由getSleepTimeMs方法得到(抽象方法)。如果程序运行时出现了InterruptedException,就中断当前线程

package org.apache.curator.retry;import org.apache.curator.RetryPolicy;
import org.apache.curator.RetrySleeper;
import java.util.concurrent.TimeUnit;abstract class SleepingRetry implements RetryPolicy
{private final int n;protected SleepingRetry(int n){this.n = n;}public int getN(){return n;}public boolean allowRetry(int retryCount, long elapsedTimeMs, RetrySleeper sleeper){if ( retryCount < n ){try{sleeper.sleepFor(getSleepTimeMs(retryCount, elapsedTimeMs), TimeUnit.MILLISECONDS);}catch ( InterruptedException e ){Thread.currentThread().interrupt();return false;}return true;}return false;}protected abstract long  getSleepTimeMs(int retryCount, long elapsedTimeMs);
}

SessionFailedRetryPolicy类

(实现了RetryPolicy接口,增加了对SessionExpiredException这种异常的判断,如果是这种异常,返回false,不再进行重试连接)

package org.apache.curator;import org.apache.zookeeper.KeeperException;/*** Session过期导致操作失败时的重连策略*/
public class SessionFailedRetryPolicy implements RetryPolicy
{private final RetryPolicy delegatePolicy;public SessionFailedRetryPolicy(RetryPolicy delegatePolicy){this.delegatePolicy = delegatePolicy;}@Overridepublic boolean allowRetry(int retryCount, long elapsedTimeMs, RetrySleeper sleeper){return delegatePolicy.allowRetry(retryCount, elapsedTimeMs, sleeper);}@Overridepublic boolean allowRetry(Throwable exception){if ( exception instanceof KeeperException.SessionExpiredException ){return false;}else{return delegatePolicy.allowRetry(exception);}}
}

当遇到Session过期异常时,不再进行重连,即返回false。而其他的所有业务全部委托给delegatePolicy实例。RetryPolicy接口的allowRetry(Throwable exception)方法有默认实现,所以除开此类异常,还是会继续进行重试连接的。SessionFailedRetryPolicy类是针对此类异常进行了预先处理:

    default boolean allowRetry(Throwable exception){if ( exception instanceof KeeperException){final int rc = ((KeeperException) exception).code().intValue();return (rc == KeeperException.Code.CONNECTIONLOSS.intValue()) ||(rc == KeeperException.Code.OPERATIONTIMEOUT.intValue()) ||(rc == KeeperException.Code.SESSIONMOVED.intValue()) ||(rc == KeeperException.Code.SESSIONEXPIRED.intValue());}return false;}

RetryForever类

(实现了RetryPolicy接口,重试没有次数限制。)

package org.apache.curator.retry;import org.apache.curator.RetryPolicy;
import org.apache.curator.RetrySleeper;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;import java.util.concurrent.TimeUnit;import static com.google.common.base.Preconditions.checkArgument;/*** 始终允许重试*/
public class RetryForever implements RetryPolicy
{private static final Logger log = LoggerFactory.getLogger(RetryForever.class);// 重试间隔时间,单位毫秒private final int retryIntervalMs;public RetryForever(int retryIntervalMs){checkArgument(retryIntervalMs > 0);this.retryIntervalMs = retryIntervalMs;}@Overridepublic boolean allowRetry(int retryCount, long elapsedTimeMs, RetrySleeper sleeper){try{sleeper.sleepFor(retryIntervalMs, TimeUnit.MILLISECONDS);}catch (InterruptedException e){Thread.currentThread().interrupt();log.warn("Error occurred while sleeping", e);return false;}return true;}
}

上面介绍了三个主要的类:抽象类SleepingRetry,RetryPolicy接口直接实现类SessionFailedRetryPolicy和RetryForever

抽象类SleepingRetry的继承实现子类

然后下面主要是介绍抽象类SleepingRetry的继承实现子类,下图可以看见他们的层次关系
在这里插入图片描述

ExponentialBackoffRetry类

(继承了SleepingRetry抽象类)
我们从以下代码可以看出代码的设计就在于扩展(高度可重用的代码(功能)来做父类,然后向下扩展衍生,改写,生成具体场景和功能所使用的子类)

public class ExponentialBackoffRetry extends SleepingRetry
{private static final Logger log = LoggerFactory.getLogger(ExponentialBackoffRetry.class);private static final int MAX_RETRIES_LIMIT = 29;private static final int DEFAULT_MAX_SLEEP_MS = Integer.MAX_VALUE;private final Random random = new Random();private final int baseSleepTimeMs;private final int maxSleepMs;/*** baseSleepTimeMs – 重试之间等待的初始时间* maxRetries – 最大重试次数*/public ExponentialBackoffRetry(int baseSleepTimeMs, int maxRetries){this(baseSleepTimeMs, maxRetries, DEFAULT_MAX_SLEEP_MS);}/*** baseSleepTimeMs – 重试之间等待的初始时间* maxRetries – 最大重试次数* maxSleepMs – 每次重试时休眠的最长时间(以毫秒为单位)*/public ExponentialBackoffRetry(int baseSleepTimeMs, int maxRetries, int maxSleepMs){super(validateMaxRetries(maxRetries));this.baseSleepTimeMs = baseSleepTimeMs;this.maxSleepMs = maxSleepMs;}@VisibleForTestingpublic int getBaseSleepTimeMs(){return baseSleepTimeMs;}@Overrideprotected long getSleepTimeMs(int retryCount, long elapsedTimeMs){long sleepMs = baseSleepTimeMs * Math.max(1, random.nextInt(1 << (retryCount + 1)));if ( sleepMs > maxSleepMs ){log.warn(String.format("Sleep extension too large (%d). Pinning to %d", sleepMs, maxSleepMs));sleepMs = maxSleepMs;}return sleepMs;}private static int validateMaxRetries(int maxRetries){if ( maxRetries > MAX_RETRIES_LIMIT ){log.warn(String.format("maxRetries too large (%d). Pinning to %d", maxRetries, MAX_RETRIES_LIMIT));maxRetries = MAX_RETRIES_LIMIT;}return maxRetries;}
}

重试maxRetries次,maxRetries如果大于最大重试次数限制(MAX_RETRIES_LIMIT,程序里面写死了是29),maxRetries就会被MAX_RETRIES_LIMIT覆盖,否则不改变maxRetries的大小。

getSleepTimeMs方法获取的重试之间的睡眠时间并不是不变的,而是通过如下形式,随着重试次数的增加,睡眠时间的随机范围不断扩大(右边界不断扩大),如果随机得到的睡眠时间超过maxSleepMs(如果没有被指定,默认为DEFAULT_MAX_SLEEP_MS, 即 Integer.MAX_VALUE),会被maxSleepMs覆盖。然后我们可以看见这个代码是从Hadoop 的代码文件copy过来的,所以很多东西是需要相互借鉴的。

protected long getSleepTimeMs(int retryCount, long elapsedTimeMs)
{// copied from Hadoop's RetryPolicies.javalong sleepMs = baseSleepTimeMs * Math.max(1, random.nextInt(1 << (retryCount + 1)));if ( sleepMs > maxSleepMs ){log.warn(String.format("Sleep extension too large (%d). Pinning to %d", sleepMs, maxSleepMs));sleepMs = maxSleepMs;}return sleepMs;
}

BoundedExponentialBackoffRetry(ExponentialBackoffRetry的子类)

我们可以看见,这个类增加了一个字段maxSleepTimeMs(由我们调用的时候传入),然后重写了getSleepTimeMs方法,目的就是要给SleepTimeMs设限制,不能超过我们传入的maxSleepTimeMs值(比如说5000ms,那么SleepTimeMs就不能超过5000ms)
功能也写的不多,这样的代码自己在外面自己的代码里面也可以自己写,但是他却封装了出来(要不就是这个很常用,要不就是有其他考量,我们需要从中学习,思考他为什么要这么设计)

public class BoundedExponentialBackoffRetry extends ExponentialBackoffRetry
{private final int maxSleepTimeMs;/*** baseSleepTimeMs – 重试之间等待的初始时间* maxSleepTimeMs – 重试之间等待的最长时间* maxRetries – 重试的最大次数*/public BoundedExponentialBackoffRetry(int baseSleepTimeMs, int maxSleepTimeMs, int maxRetries){super(baseSleepTimeMs, maxRetries);this.maxSleepTimeMs = maxSleepTimeMs;}@VisibleForTestingpublic int getMaxSleepTimeMs(){return maxSleepTimeMs;}@Overrideprotected long getSleepTimeMs(int retryCount, long elapsedTimeMs){return Math.min(maxSleepTimeMs, super.getSleepTimeMs(retryCount, elapsedTimeMs));}
}

RetryNTimes类:

继承了SleepingRetry抽象类,没有重写allowRetry方法,因此也是重试n次,重写实现了getSleepTimeMs方法,该方法返回重试之间的睡眠时间sleepMsBetweenRetries(sleepMsBetweenRetries也是从外面传入)。

public class RetryNTimes extends SleepingRetry
{private final int sleepMsBetweenRetries;public RetryNTimes(int n, int sleepMsBetweenRetries){super(n);this.sleepMsBetweenRetries = sleepMsBetweenRetries;}@Overrideprotected long getSleepTimeMs(int retryCount, long elapsedTimeMs){return sleepMsBetweenRetries;}
}

RetryOneTime类(继承了RetryNTimes类):

简单的封装,只重试一次的重试策略(也可以说是特殊的RetryNTimes类,但就是进一步封装了出来(通过构造函数),使得结构更加清晰,而开发人员也很容易根据类的名称知晓他的作用)。

public class RetryOneTime extends RetryNTimes
{public RetryOneTime(int sleepMsBetweenRetry){super(1, sleepMsBetweenRetry);}
}

RetryUntilElapsed类

重试,直到给定的时间结束
可以看见,重试的次数为Integer.MAX_VALUE,从外面调用的地方传入maxElapsedTimeMs和sleepMsBetweenRetries,由开发人员自己定义(只要在maxElapsedTimeMs就可以进行重试)

public class RetryUntilElapsed extends SleepingRetry
{private final int maxElapsedTimeMs;private final int sleepMsBetweenRetries;public RetryUntilElapsed(int maxElapsedTimeMs, int sleepMsBetweenRetries){super(Integer.MAX_VALUE);this.maxElapsedTimeMs = maxElapsedTimeMs;this.sleepMsBetweenRetries = sleepMsBetweenRetries;}@Overridepublic boolean allowRetry(int retryCount, long elapsedTimeMs, RetrySleeper sleeper){return super.allowRetry(retryCount, elapsedTimeMs, sleeper) && (elapsedTimeMs < maxElapsedTimeMs);}@Overrideprotected long getSleepTimeMs(int retryCount, long elapsedTimeMs){return sleepMsBetweenRetries;}
}

实验代码:

public class CuratorConnect {//连接zookeeper  serverpublic CuratorFramework client = null;//日志  我这里暂时懒得用了,直接System.out.println()打印控制台还看得更清楚static final Logger log = LoggerFactory.getLogger(CuratorConnect.class);//server列表,以逗号分割,我这里是使用docker-compose 搭建的单机zookeeper集群static final String ZK_SERVER_CLUSTER = "81.68.82.48:2181,81.68.82.48:2182,81.68.82.48:2183";//连接的超时时间,单位msprivate static final Integer SESSION_TIMEOUT = 30000;public boolean connect() {/*** 实例化zookeeper 客户端* 重试之间的睡眠时间随着重试的次数增加而增加* curator链接zookeeper的策略:ExponentialBackoffRetry* baseSleepTimeMs:重试之间的初始等待时间* maxRetries:最大重试次数* maxSleepMs:最大重试时间*/RetryPolicy retryPolicy1 = new ExponentialBackoffRetry(1000, 5,2000);/*** curator链接zookeeper的策略:BoundedExponentialBackoffRetry* baseSleepTimeMs : 重试之间的初始等待时间* maxSleepTimeMs : 重试之间的最大等待时间* maxRetries : 重试的最大次数* 继承于 ExponentialBackoffRetry 类* 给SleepTimeMs 设限,不能超过传入的 maxSleepTimeMs*/RetryPolicy retryPolicy2 = new BoundedExponentialBackoffRetry(1000,3000,3);/*** curator链接zookeeper的策略:RetryNTimes* n:重试的次数* sleepMsBetweenRetries:每次重试间隔的时间*/RetryPolicy retryPolicy3 = new RetryNTimes(3, 5000);/*** curator链接zookeeper的策略:RetryOneTime* 特殊的RetryNTimes,其实内部还是调用的RetryNTimes的构造函数,只是重试次数设置为1* sleepMsBetweenRetry:每次重试间隔的时间*/RetryPolicy retryPolicy4 = new RetryOneTime(3000);/*** curator链接zookeeper的策略:RetryUntilElapsed* maxElapsedTimeMs:最大重试时间* sleepMsBetweenRetries:每次重试间隔* 重试时间超过maxElapsedTimeMs后,就不再重试*/RetryPolicy retryPolicy5 = new RetryUntilElapsed(2000, 3000);/*** curator链接zookeeper的策略:RetryForever* retryIntervalMs:重试间隔时间* 永远重试,不推荐使用*/RetryPolicy retryPolicy6 = new RetryForever(1000);/*** curator链接zookeeper的策略:SessionFailedRetryPolicy* delegatePolicy: 代理策略实例* 在注入的其他策略的实例上面,预先判断Session有没有过期,过期了就不允许再进行重试,感觉类似于代理模式*/RetryPolicy retryPolicy7 = new SessionFailedRetryPolicy(retryPolicy1);try{//fluent 样式的API风格client = CuratorFrameworkFactory.builder().connectString(ZK_SERVER_CLUSTER).sessionTimeoutMs(SESSION_TIMEOUT).retryPolicy(retryPolicy1).namespace("workspaceXT").connectionTimeoutMs(SESSION_TIMEOUT).build();client.start();} catch (Exception e) {e.printStackTrace();}if(client.getState().equals(CuratorFrameworkState.STARTED)){return true;}else{return false;}}/*** @Description: 关闭zk客户端连接*/public boolean closeZKClient() {try {this.client.close();} catch (Exception e) {e.printStackTrace();}if (client.getState().equals(CuratorFrameworkState.STOPPED)) {return true;}else{return false;}}public static void main(String[] args) throws Exception {CuratorConnect curatorConnect = new CuratorConnect();//连接System.out.println("当前客户端的状态:" + (curatorConnect.connect() ? "连接成功" : "连接失败"));//断开连接System.out.println("当前客户的状态:" + (curatorConnect.closeZKClient()? "已关闭" : "关闭失败"));}}

connectString:ZooKeeper服务端的地址。
sessionTimeoutMs:Session超时时间。
retryPolicy:重试策略。
namespace:命名空间,类似chroot的功能,之后在该客户端上的操作,都是基于该命名空间,起到资源隔离的作用。
connectionTimeoutMs:连接超时时间。

Fluent风格的API的简单探讨:

//fluent 样式的API风格
client = CuratorFrameworkFactory.builder().connectString(ZK_SERVER_CLUSTER).sessionTimeoutMs(SESSION_TIMEOUT).retryPolicy(retryPolicy1).namespace("workspaceXT").connectionTimeoutMs(SESSION_TIMEOUT).build();
client.start();

CuratorFramework是ZooKeeper Client更高的抽象API
CuratorFrameworkFactory类是CuratorFramework的工厂类

CuratorFrameworkFactory类提供了两个方法, 一个工厂方法newClient, 一个构建方法build. 使用工厂方法newClient可以创建一个默认的实例, 而build构建方法可以对实例进行定制. 当CuratorFramework实例构建完成, 紧接着调用start()方法, 在应用结束的时候, 需要调用close()方法. CuratorFramework是线程安全的. 在一个应用中可以共享同一个zk集群的CuratorFramework.

我们这里使用builder来new一个我们定制化的实例

CuratorFrameworkFactory.builder()

builder是一个静态方法,返回一个Builder实例

public class CuratorFrameworkFactory
{/*** Return a new builder that builds a CuratorFramework** @return new builder*/public static Builder builder(){return new Builder();}}

Builder是CuratorFrameworkFactory的静态内部类
里面封装了很多属性和方法(我删掉了很多代码,怕太长)

    public static class Builder{private EnsembleProvider ensembleProvider;private int sessionTimeoutMs = DEFAULT_SESSION_TIMEOUT_MS;private int connectionTimeoutMs = DEFAULT_CONNECTION_TIMEOUT_MS;private int maxCloseWaitMs = DEFAULT_CLOSE_WAIT_MS;private RetryPolicy retryPolicy;private ThreadFactory threadFactory = null;private String namespace;private List<AuthInfo> authInfos = null;private byte[] defaultData = LOCAL_ADDRESS;/*** Add connection authorization. The supplied authInfos are appended to those added via call to* {@link #authorization(java.lang.String, byte[])} for backward compatibility.* <p/>* Subsequent calls to this method overwrite the prior calls.** @param authInfos list of {@link AuthInfo} objects with scheme and auth* @return this*/public Builder authorization(List<AuthInfo> authInfos){this.authInfos = ImmutableList.copyOf(authInfos);return this;}/*** Set the list of servers to connect to. IMPORTANT: use either this or {@link #ensembleProvider(EnsembleProvider)}* but not both.** @param connectString list of servers to connect to* @return this*/public Builder connectString(String connectString){ensembleProvider = new FixedEnsembleProvider(connectString);return this;}/*** As ZooKeeper is a shared space, users of a given cluster should stay within* a pre-defined namespace. If a namespace is set here, all paths will get pre-pended* with the namespace** @param namespace the namespace* @return this*/public Builder namespace(String namespace){this.namespace = namespace;return this;}/*** @param sessionTimeoutMs session timeout* @return this*/public Builder sessionTimeoutMs(int sessionTimeoutMs){this.sessionTimeoutMs = sessionTimeoutMs;return this;}/*** @param connectionTimeoutMs connection timeout* @return this*/public Builder connectionTimeoutMs(int connectionTimeoutMs){this.connectionTimeoutMs = connectionTimeoutMs;return this;}/*** @param retryPolicy retry policy to use* @return this*/public Builder retryPolicy(RetryPolicy retryPolicy){this.retryPolicy = retryPolicy;return this;}/*** @param threadFactory thread factory used to create Executor Services* @return this*/public Builder threadFactory(ThreadFactory threadFactory){this.threadFactory = threadFactory;return this;}/*** @param compressionProvider the compression provider* @return this*/public Builder compressionProvider(CompressionProvider compressionProvider){this.compressionProvider = compressionProvider;return this;}/*** @param zookeeperFactory the zookeeper factory to use* @return this*/public Builder zookeeperFactory(ZookeeperFactory zookeeperFactory){this.zookeeperFactory = zookeeperFactory;return this;}/*** @param aclProvider a provider for ACLs* @return this*/public Builder aclProvider(ACLProvider aclProvider){this.aclProvider = aclProvider;return this;}private Builder(){}}

我们可以看到,Fluent风格的API调用其实,就是通过调用方法来给实例里面的属性进行注入填充,所以可以做到链式调用的Fluent风格

 public Builder retryPolicy(RetryPolicy retryPolicy){this.retryPolicy = retryPolicy;return this;}

最后调用build方法,返回一个CuratorFrameworkImpl实例

 /*** Apply the current values and build a new CuratorFramework** @return new CuratorFramework*/public CuratorFramework build(){return new CuratorFrameworkImpl(this);}

这样就能很清晰的给实例设置我们想要的属性值

References:

  1. https://kaven.blog.csdn.net/article/details/121548596
  2. https://www.jianshu.com/p/db65b64f38aa
  3. https://colobu.com/2014/12/16/zookeeper-recipes-by-example-9/
  4. https://curator.apache.org/getting-started.html
  5. https://coding.imooc.com/class/201.html

(写博客主要是对自己学习的归纳整理,资料大部分来源于书籍、网络资料和自己的实践,整理不易,但是难免有不足之处,如有错误,请大家评论区批评指正。同时感谢广大博主和广大作者辛苦整理出来的资源和分享的知识。)

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

相关文章

  1. kotlin语法

    文章目录前言主要参考资料&#xff1a;语法基础修饰符classfunparam原生字符串迭代器item in arrayarray.indicesarray.withIndex()array.forEach { }array.forEachIndexed { }Range条件正向区间逆向区间步长字符串换行输出replace等号遍历数值类→\rightarrow→ IntDouble格式…...

    2024/4/17 23:36:40
  2. 读取太阳紫外辐照谱数据

    1 数据来源 SORCE卫星观测数据http://lasp.colorado.edu/data/sorce/ssi_data/solstice/high_res/SORCE_SOLSTICE_L3_HR_V18_2004.nc每年一个单独的文件,为netCDF格式。数据文件每列的格式为: 年,月,日,波长(115-310,0.025间隔,共7800个),辐照度,不确定度... 2 p…...

    2024/4/14 17:39:17
  3. 英特尔面向物联网发布第12代英特尔酷睿处理器

    英特尔在近期举行的2022年国际消费类电子产品展览会&#xff08;CES 2022&#xff09;上发布了第12代英特尔酷睿™处理器&#xff08;代号Alder Lake S系列和H系列&#xff09;。这是英特尔首个针对边缘进行优化的处理器家族&#xff0c;该款处理器采用的**高性能混合架构将性能…...

    2024/4/19 17:04:29
  4. 【Python之pymysql库学习】一、分析fetchone()、fetchmany()、fetchall()(保姆级图文+实现代码)

    目录实现效果实现思路实现代码总结欢迎关注 『Python之pymysql库学习』 系列&#xff0c;持续更新中 欢迎关注 『Python之pymysql库学习』 系列&#xff0c;持续更新中 实现效果 实现思路 其实有半数代码是创建数据库和创建数据表并插入数据这些环境配置部分我都写好了&#x…...

    2024/4/14 17:38:57
  5. LeetCode1220. 统计元音字母序列的数目—动态规划法和矩阵幂表示

    题目概述 题目链接&#xff1a;点我做题 题解 一、动态规划 字符串类的题如果要考虑动态规划都可以考虑以什么东西结尾的目标量&#xff0c;比如本题&#xff0c;先定义一个映射a−0,e−1,i−2,o−3,u−4a-0,e-1,i-2,o-3,u-4a−0,e−1,i−2,o−3,u−4定义f(i,j)(j0,1,2,3,4)f…...

    2024/4/14 17:38:37
  6. 1027 打印沙漏 (20 分)

    1027 打印沙漏 (20 分) 本题要求你写个程序把给定的符号打印成沙漏的形状。例如给定17个“*”&#xff0c;要求按下列格式打印 所谓“沙漏形状”&#xff0c;是指每行输出奇数个符号&#xff1b;各行符号中心对齐&#xff1b;相邻两行符号数差2&#xff1b;符号数先从大到小顺序…...

    2024/4/16 22:09:50
  7. vue项目webstrom内存溢出经常停止运行需重启问题

    vue项目webstrom内存溢出经常停止运行需重启问题 解决方案&#xff1a;全局安装 increase-memory-limit 命令行cmd ,dos窗口运行&#xff1a;cnpm install -g increase-memory-limit&#xff0c; 进入项目文件夹&#xff0c;运行&#xff1a;increase-memory-limit...

    2024/4/18 17:27:38
  8. Android Studio 下载安装教程

    Android Studio 下载安装教程1. 软件安装前准备2. 安装 Android Studio1. 软件安装前准备 在安装 Android Studio 之前要确定电脑已安装有 JDK&#xff08;且要 1.7或以上的版本&#xff09;&#xff0c;JDK 下载和安装教程 &#xff1b; 点击下载 Android Studio 2. 安装 A…...

    2024/4/18 13:02:40
  9. C 语言最重要的知识点(1)

    总体上要记得 1.程序结构是三种&#xff1a; 顺序结构、选择结构&#xff08;分支结构&#xff09;、 循环结构。 2.读程序都要从 main()入口&#xff0c;然后从最上面顺序往下读&#xff08;碰到循环做循环&#xff0c;碰到选择做选择&#xff09;&#xff0c;有…...

    2024/4/14 17:39:28
  10. JAVA练习23-矩阵中的路径

    给定一个 m x n 二维字符网格 board 和一个字符串单词 word 。如果 word 存在于网格中&#xff0c;返回 true &#xff1b;否则&#xff0c;返回 false 。 单词必须按照字母顺序&#xff0c;通过相邻的单元格内的字母构成&#xff0c;其中“相邻”单元格是那些水平相邻或垂直相…...

    2024/4/20 4:29:44
  11. 黑匣子 洛谷P1801

    题目描述 Black Box 是一种原始的数据库。它可以储存一个整数数组&#xff0c;还有一个特别的变量 ii。最开始的时候 Black Box 是空的&#xff0e;而 i0i0。这个 Black Box 要处理一串命令。 命令只有两种&#xff1a; ADD(x)&#xff1a;把 xx 元素放进 Black Box; GET&am…...

    2024/4/15 2:25:57
  12. 学习笔记——git从远程仓库拉取代码修改并提交和本地代码提交到远程仓库

    最近开始学习使用git&#xff0c;找了好多博主的文章总结了一下&#xff0c;并非原创 多多指教。 一、git从远程仓库拉取代码修改并提交 1、本地新建项目目录 2、从远程仓库拉取代码到本地 git clone git[xxx/xxx.git] //注&#xff1a;默认拉取的是master的分支上的代码…...

    2024/4/14 17:39:38
  13. win10 sdk各种版本下载地址

    https://developer.microsoft.com/zh-cn/windows/downloads/sdk-archive/...

    2024/4/29 11:38:46
  14. vue上传功能实现 java后台代码的实现

    具体功能如图&#xff1a;上传按钮 vue前台代码&#xff1a; <el-uploadclass"upload-demo"ref"client_upload"accept".tar.gz"action"api/clientUpload/uploadFile":on-preview"handlePreview":on-remove"handleRe…...

    2024/4/14 17:39:28
  15. Android控制之垂直滚动广告条ViewFLipper解析(1),kotlin开发android

    xmlns:app“http://schemas.android.com/apk/res-auto”> </android.support.constraint.ConstraintLayout> 很简单&#xff0c;就是一个图片一个标题而已。 接着就可以设置ViewFlipper的子项了。 public class MainActivity extends AppCompatActivity { private …...

    2024/4/17 23:39:46
  16. wangEditor富文本编辑器addRange(): The given range isn‘t in document解决方法

    在使用wangEditor富文本编辑器的时候发现第一次创建富文本编辑器可以正常显示出来 &#xff0c;而第二次打开后就变成了一片空白&#xff0c;看了一下控制台报错显示&#xff1a; addRange(): The given range isnt in document正常显示&#xff1a; 第二次进入报错页面空白&…...

    2024/4/19 10:00:37
  17. 实验五 循环结构程序设计

    一、实验目的 1.掌握在程序设计条件型循环结构时&#xff0c;如何正确地设定循环条件&#xff0c;以及如何控制循环的次数。 2.了解条件型循环结构的基本测试方法。 3.掌握如何正确地控制计数型循环结构的次数。 4.了解对计数型循环结构进行测试的基本方法。 5.了解在嵌套循…...

    2024/4/14 17:39:38
  18. Allegro转PADS,导入ASC时提示 规则的值超出范围

    原因&#xff1a;条件规则里面设置为0了 每层都改成如下&#xff1a;...

    2024/4/18 4:23:14
  19. 计算机操作系统——熟悉Windows中的进程和线程

    1、熟悉Windows中任务管理器的使用。 2、通过任务管理器识别操作系统中的进程和线程的相关信息。 3、掌握利用spy.exe来察看Windows中各个任务的更详细信息。 理论基础&#xff1a; &#xff08;1&#xff09; 操作系统中的进程和线程的概念&#xff1b; &#xff08;2&#x…...

    2024/4/14 17:39:33
  20. 【经验-强制HTTPS-web】在服务器301强制HTTPS跳转,套上腾讯云CDN后,第一次访问发生不强制跳转HTTPS的问题解决方法

    今天偶然在编程群里展示了下个人站,没想到大佬居然说我的网站没有开Https。 我当场懵逼了,不可能啊,面板上我开了强制Https啊!? 于是我自己用edge访问了一下,结果发现真是这样。 【第一次】 第二次 更离谱的是,我一个字一个字重新写了301 rewrite,居然还是不生效。 然后我和…...

    2024/4/14 17:39:48

最新文章

  1. 【牛客网】值周

    原题链接&#xff1a;登录—专业IT笔试面试备考平台_牛客网 目录 1. 题目描述 2. 思路分析 3. 代码实现 1. 题目描述 2. 思路分析 差分。 因为l<100000000,所以数组开1e8。 唯一需要注意的点就是前面给b[0]单独赋值为1&#xff08;因为如果在循环中给b[0]赋值&…...

    2024/5/4 3:56:43
  2. 梯度消失和梯度爆炸的一些处理方法

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

    2024/3/20 10:50:27
  3. 腾讯云轻量服务器流量不够用了会怎么样?

    腾讯云轻量应用服务器是限制月流量的&#xff0c;如果当月流量不够用了&#xff0c;流量超额了怎么办&#xff1f;流量超额后&#xff0c;需要另外支付流量费&#xff0c;如果你的腾讯云账号余额&#xff0c;就会自动扣除对应的流量费&#xff0c;如果余额不足&#xff0c;轻量…...

    2024/5/1 13:01:36
  4. 【python】Flask Web框架

    文章目录 WSGI(Web服务器网关接口)示例Web应用程序Web框架Flask框架创建项目安装Flask创建一个基本的 Flask 应用程序调试模式路由添加变量构造URLHTTP方法静态文件模板—— Jinja2模板文件(Template File)<...

    2024/5/2 2:33:45
  5. 【外汇早评】美通胀数据走低,美元调整

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

    2024/5/1 17:30:59
  6. 【原油贵金属周评】原油多头拥挤,价格调整

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

    2024/5/2 16:16:39
  7. 【外汇周评】靓丽非农不及疲软通胀影响

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

    2024/4/29 2:29:43
  8. 【原油贵金属早评】库存继续增加,油价收跌

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

    2024/5/3 23:10:03
  9. 【外汇早评】日本央行会议纪要不改日元强势

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

    2024/4/27 17:58:04
  10. 【原油贵金属早评】欧佩克稳定市场,填补伊朗问题的影响

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

    2024/4/27 14:22:49
  11. 【外汇早评】美欲与伊朗重谈协议

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

    2024/4/28 1:28:33
  12. 【原油贵金属早评】波动率飙升,市场情绪动荡

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

    2024/4/30 9:43:09
  13. 【原油贵金属周评】伊朗局势升温,黄金多头跃跃欲试

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

    2024/4/27 17:59:30
  14. 【原油贵金属早评】市场情绪继续恶化,黄金上破

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

    2024/5/2 15:04:34
  15. 【外汇早评】美伊僵持,风险情绪继续升温

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

    2024/4/28 1:34:08
  16. 【原油贵金属早评】贸易冲突导致需求低迷,油价弱势

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

    2024/4/26 19:03:37
  17. 氧生福地 玩美北湖(上)——为时光守候两千年

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

    2024/4/29 20:46:55
  18. 氧生福地 玩美北湖(中)——永春梯田里的美与鲜

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

    2024/4/30 22:21:04
  19. 氧生福地 玩美北湖(下)——奔跑吧骚年!

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

    2024/5/1 4:32:01
  20. 扒开伪装医用面膜,翻六倍价格宰客,小姐姐注意了!

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

    2024/5/4 2:59:34
  21. 「发现」铁皮石斛仙草之神奇功效用于医用面膜

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

    2024/4/28 5:48:52
  22. 丽彦妆\医用面膜\冷敷贴轻奢医学护肤引导者

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

    2024/4/30 9:42:22
  23. 广州械字号面膜生产厂家OEM/ODM4项须知!

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

    2024/5/2 9:07:46
  24. 械字号医用眼膜缓解用眼过度到底有无作用?

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

    2024/4/30 9:42:49
  25. 配置失败还原请勿关闭计算机,电脑开机屏幕上面显示,配置失败还原更改 请勿关闭计算机 开不了机 这个问题怎么办...

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

    2022/11/19 21:17:18
  26. 错误使用 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
  27. 配置 已完成 请勿关闭计算机,win7系统关机提示“配置Windows Update已完成30%请勿关闭计算机...

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

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

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

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

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

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

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

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

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

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

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

    2022/11/19 21:17:10
  33. 电脑桌面一直是清理请关闭计算机,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
  34. 计算机配置更新不起,电脑提示“配置Windows Update请勿关闭计算机”怎么办?

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

    2022/11/19 21:16:58
  44. 如何在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