Other

mysql 5.7查找递归树下的所有子任务

select * from (SELECT team_task_temp.* FROM ( SELECT * FROM team_task ) team_task_temp, ( SELECT @pv := '825a43a940664a54b4bf20278b5e8952' ) initialisation WHERE find_in_set( pcode, @pv ) AND length( @pv := concat( @pv, ',', CODE )) union SELECT * FROM team_task where code = '825a43a940664a54b4bf20278b5e8952' ) a where a.begin_time='2022-04-11'  

@SpringBootApplication注解详细解释

@SpringBootApplicayion = @Configuration + @EnableAutoConfiguration + @Componentscan 并具有三者的默认属性 一、@Configurantion 1. @Configuration启动spring容器 @Configuration标注在类上,相当于xml配置文件中的一堆空间配置,作用为:配置Spring容器。 示例代码如下: @Configuration public class Application { //无参构造器 public Application() { System.out.println(应用启动); } } public class myTest { @Test public void test01() { ApplicationContext context = new AnnotationConfigApplicationContext(Application.class); } } 运行结果如下: 2. @Configuration配合@Bean注册Bean @Bean标注在方法上,该方法可以返回某个实例,相当于xml文件中的,作用为:注册对象。 示例代码如下: public class Dog { public void sayHello() { System.out.println(hello...); } } @Configuration public class Application { //无参构造器 public Application() { System.

电脑端口8888被占用怎么办?

方法/步骤 如何解决端口被占用的问题呢? 首先我们要打开自己的“运行”界面,按住win+R技能,在输入cmd。 接下来会弹出下图画面。 然后我们在下图当中输入netstat -ano代码,按住回车。 4 这个时候我们在找到刚才说被占用的端口,比如880端口,或者别的端口,在端口后边会看到个PID,找到PID数字。 5 然后按住ctrl+alt+del后,就会弹出来一个任务管理器,点击“详细信息”界面,会看到PID程序号。 6 找到所对应的PID程序,直接点击结束任务即可。

网络并发

代码创建进程 join方法 进程间数据默认隔离 进程间数据默认隔离 进程对象相关属性和方法 僵尸进程与孤儿进程 守护进程 互斥锁 代码创建进程 创建进程的方式有哪些 1.鼠标双击桌面一个应用图标 2.代码创建​创建进程的本质:再内存中申请一块内存空间用于运行相应的代码# 第一种创建进程的方式 from multiprocessing import Process import time ​ def task(name): print('%s is running' % name) time.sleep(3) print('%s is over' % name) ​ if __name__ == '__main__': p = Process(target=task,args=('shadiao',)) # 创建一个进程对象 p.start() # 告诉操作系统创建一个新的进程 print('主进程')  强调:不同的操作系统创建进程的要求不一样 在Windows中创建进程的是以导入模块的方式进行 所以创建进程的代码必须写在__main__子代码中 否则会直接报错 因为在无限制创建进程 在Linux和mac中创建进程是直接拷贝一份源代码然后执行 不需要写在__main__子代码中 否则会直接报错 因为在无限制创建进程 在Linux和mac中创建进程是直接拷贝一份源代码然后执行 不需要写在__main__子代码中# 创建进程的第二种方式 from multiprocessing import Process import time ​ class MyProcess(Process): def __init__(self,username): self.

自增、自减、math工具类

自增 a++ ++a a++ 执行完该行代码后,先赋值,再自增 ++a 执行完该行代码前,先自增,再赋值 public static void main(String[] args) { //++ -- 自增,自减 意愿运算符 int a = 3; int b = a++;//执行完这行代码后,先给b赋值,再自增 //a++ a = a + 1: System.out.println(a);//4 //++a a = a+1 int c = ++a;//执行完这行代码前,先自增,再给c赋值 System.out.println(a);//5 System.out.println(b);//3 System.out.println(c);//5 } 自减 同上 幂运算 使用工具类操作 Math.操作 例:Math.pow() 幂运算 public static void main(String[] args) { //幂运算 2^3 2*2*2 = 8 //很多运算,使用一些工具类来操作 double pow = Math.pow(2, 3); System.

MarkDown项目结构生成树

环境要求 Node.js(npm包管理工具) 安装Mddir 进入DOS命令界面 输入npm install mddir -g,进行安装mddir工具 生成项目结构步骤 进入DOS命令界面 进入我们指定生成的原文件夹 输入mddir命令,在该目录下将生成项目结构树

redis源码阅读3----客户端连接过程

本章主要讨论在client连接到server时。server在ae过程中是如何处理的。 主要讨论的是接口函数。  由于是初次debug。为了保险起见我还是把断点打在了aemain上。 然后在客户端执行redis-cli -p 7000 然后执行到 if (eventLoop->beforesleep != NULL && flags & AE_CALL_BEFORE_SLEEP) eventLoop->beforesleep(eventLoop); 时,连接redis server成功。也就是说,客户端连接部分的代码全在beforesleep(eventLoop);里。  我们接着往下看。 进入函数,进一步分析得到,处理链接在这一步进行:networking.c下 handleClientsWithPendingWritesUsingThreads(); 首先判断这个队列下有没有元素,如果没有的话,这个函数就直接return了,上一章也分析过。 int processed = listLength(server.clients_pending_write); 此段注释:如果I/O线程被禁用,或者我们需要服务的客户机很少,就不要使用I/O线程,而是使用同步代码(synchronous code)。 这里的I/O线程被禁用不能理解,然后的话,这里客户机很少,从代码中不难看出,很少就是1个线程。 if (server.io_threads_num == 1 || stopThreadedIOIfNeeded()) { return handleClientsWithPendingWrites(); } 然后我们看一下handleClientsWithPendingWrites()函数: 这个函数在进入事件循环前调用,可以直接将replies写入client output buffer,而不用进行syscall去安装writable event handler。 int handleClientsWithPendingWrites(void) { listIter li; listNode *ln; int processed = listLength(server.clients_pending_write); listRewind(server.clients_pending_write,&li); while((ln = listNext(&li))) { client *c = listNodeValue(ln); c->flags &= ~CLIENT_PENDING_WRITE; listDelNode(server.

Eureka(服务注册中心)

1、Eureka(服务注册中心)的基本介绍 1.1、服务注册中心的基本介绍 服务注册中心是用于管理微服务提供者的注册与发现的组件。在分布式微服务架构中,服务注册中⼼用于存储服务提供者的地址信息、服务发布相关的属性信息,消费者通过主动查询和被动通知的方式获取服务提供者的地址信息,不再需要通过硬编码⽅式得到提供者的地址信息。 对于任何⼀个微服务,原则上都应存在或者⽀持多个提供者(provider),这是由微服务的分布式属性决定的。所以为了⽀持弹性扩缩容特性,微服务的同一个提供者的数量和分布往往是动态变化的,也是无法预先确定的。这个时候就需要服务注册中心来管理微服务提供者的注册与发现了。服务注册中心本质上就是为了解耦服务提供者和服务消费者。 1.2、Eureka注册中心 Eureka是Netflix开发的服务发现框架,本身是一个基于REST的服务,主要用于定位运行在AWS域中的中间层服务,以达到负载均衡和中间层服务故障转移的目的。 Eureka架构中的三个核心角色: 服务注册中心(Eureka 服务端,即Eureka Server):Eureka的服务端应用,提供服务注册和发现功能 服务提供者(Eureka 客户端,即Eureka client):提供服务的应用,可以是SpringBoot应用,也可以是其它任意技术实现,只要对外提供的是Rest风格服务即可 服务消费者(Eureka 客户端,即Eureka client):消费应用从注册中心获取服务列表,从而得知每个服务方的信息,知道去哪里调用服务方。 Eureka包含两个组件:Eureka Server和Eureka Client。Eureka客户端就是指我们的开发的服务,包括服务提供者和消费者。 Eureka Server提供服务注册服务,各个节点启动后,会在Eureka Server中进行注册,这样EurekaServer中的服务注册表中将会存储所有可用服务节点的信息,服务节点的信息可以在界面中直观的看到。 Eureka Client是一个java客户端,用于简化与Eureka Server的交互,客户端同时也就是一个内置的、使用轮询(round-robin)负载算法的负载均衡器。  1.2.1、Eureka的运行机制 Eureka 的整个运行机制大致如下: 注册:Eureka client 一次次反复连接eureka,直到注册成功为止。 拉取或订阅:消费者会把注册中心的整个注册表都全部拉取过来缓存到本地,会每隔30秒拉取一次注册表,更新注册信息。实际上服务消费者可以主动拉取可⽤的服务提供者清单,也可以由服务消费者订阅服务(当服务提供者有变化时,注册中⼼会主动推送更新后的服务清单给消费者。 心跳:消费提供者每30秒发送一次心跳,Eureka 在每次收不到心跳后就会记一个数,如果3次没有收到心跳 eureka 会删除这个服务(将地址从注册表中删除) 自我保护模式:特殊情况,由于网络不稳定15秒内85%服务器出现心跳异常(一次收不到就算心跳一次)。会保护所有的注册信息不删除,就算3次没有收到心跳的情况也不会删除,网络恢复后,可以自动退出保护模式,在开发测试期间,可以关闭保护模式。 服务提供方与Eureka之间通过“心跳”机制进行监控,当某个服务提供方出现问题,Eureka自然会把它从服务列表中剔除。这就实现了服务的自动注册、发现、状态监控。 原理图如下:  

【日记】2021 - 2022 下半学年半期考日记

Day -3 列了一张半期考复习内容提纲,挺多东西没有做的。 浅背了一下《大道之行也》。 学科 语文 数学 英语 历史 道德与法治 地理 生物学 物理 进度(%) 10 50 0 0 0 50 50 50 Day -2 睡到了下午 4 点,完蛋。 默写了半个学期以来的所有的英语短语。 打 印 了政治提纲。 研 究 物 理 探 究 数 学。 放松亿小下。 《论末日生存》 学科 语文 数学 英语 历史 道德与法治 地理 生物学 物理 进度(%) 10 60 50 0 45 50 50 60 Day -1 看了宫崎骏的动漫与其解析。