步骤如下:1. 启动类加入 @EnableAsync 注解@SpringBootApplication @EnableAsync public class FacadeH5Application { public static void main(String[] args) { SpringApplication.run(FacadeH5Application.class, args); } }2. 在方法上加 @Async 注解@Async public void m1() { //do something }3. 创建线程池配置文件# 核心线程数 spring.task.execution.pool.core-size=8 # 最大线程数 spring.task.execution.pool.max-size=16 # 空闲线程存活时间 spring.task.execution.pool.keep-alive=60s # 是否允许核心线程超时 spring.task.execution.pool.allow-core-thread-t
今天遇到一个问题,需要在静态方法中调用哦那个容器Bean,大致代码如下:@Autowired private static RedisUtil redisUtilBean; public static String getMsgByRedis(){ redisUtilBean.get("xxx") //这里redisUtilBean一定会是NULL值 }为什么会出现这种情况?原因是Spring容器的依赖注入是依赖set方法,而set方法是实例对象的方法,注入依赖时是无法注入静态成员变量的,在调用的时候依赖的Bean才会为null;解决方案一使用@PostConstruct注解:@Autowired private RedisUtil redisUtilBean; //由于静态方法无法使用注入的Bean 定义静态变量 private static RedisUtil redisUtil; //当容器实例化当前受管Bean时@PostConstruct注解的方法会被自动触发,借此来实现静态变量初始化 @PostConstruct public v
我们都知道spring只是为我们简单的处理线程池,每次用到线程总会new 一个新的线程,效率不高,所以我们需要自定义一个线程池。本教程目录:自定义线程池配置spring默认的线程池1. 自定义线程池1.1 修改application.propertiestask.pool.corePoolSize=20 task.pool.maxPoolSize=40 task.pool.keepAliveSeconds=300 task.pool.queueCapacity=501.2 线程池配置属性类TaskThreadPoolConfig.javaimport org.springframework.boot.context.properties.ConfigurationProperties; /** * 线程池配置属性类 * Created by Fant.J. */ @ConfigurationProperties(prefix = "task.pool") public class TaskThreadPoolConfig { private int c
1. 使用git fetch命令需要在本地额外新建分支的 :// 查看远程 git remote -v // 获取远程指定分支到本地临时新建的分支 // 获取远程master的分支的代码到临时新建的temp git fetch origin master:temp // 查看版本差异 // 查看temp分支与当前分支的差异 git diff temp // 将临时分支temp合并到当前分支 git merge tmep // 删除临时分支 git branch -D temp不要在本地新建分支的 :// 查看远程 git remote -v // 获取远程分支到本地 // 获取远程的master分支 git fetch origin master // 查看版本差异 // 查看远程master分支与本地master分支的差别 git log -p master..origin/master // 合并到本地分支 git merge origin/master2.使用git pull命令相当于git fetch与git merge一起使用,但是这样使用容易出错所以推荐第一种方式//
查看系统版本cat /etc/os-release cat /etc/redhat-release rpm -q centos-release查看内核uname -a安装epelyum -y install epel-release rpm -ivh http://dl.fedoraproject.org/pub/epel/epel-release-latest-7.noarch.rpm rpm --import /etc/pki/rpm-gpg/RPM-GPG-KEY-EPEL-7安装remi#remi源需要手动启用 rpm -ivh http://rpms.famillecollet.com/enterprise/remi-release-7.rpm rpm --import http://rpms.famillecollet.com/RPM-GPG-KEY-remi yum install -y yum-utils yum-config-manager --enable remi > /dev/null安装php71#!/bin/bash yum -y install \
Laravel 实现适用于 API 的分页查询Laravel自带分页查询方法里有一些多余的数据,并不完美适用于我们用来做API的查询。本文旨在通过重写 paginate 解决分页查询针对API接口的的灵活性和适用性。新建BaseModel.php文件,代码如下:<?php namespace App\Http\Model; use Illuminate\Database\Eloquent\Model; use Illuminate\Pagination\Paginator; class BaseModel extends Model{ public $timestamps = false; //重写分页方法,使其更加匹配API的规范 //考虑到性能问题,通常$columns我们不以*号为值。可传入需要查询的字段替代。这里只做演示。无此要求 public function paginate($perPage = null, $columns = ['*'], $page = null, $pageName = 'p
知识点一般 php-fpm 进程占用20~30m左右的内存就按30m算。如果单独跑php-fpm,动态方式起始值可设置物理内存Mem/30M,由于大家一般Nginx、MySQL都在一台机器上,于是预留一半给它们,即php-fpm进程数(max_children)为$Mem/2/30。max_requests:指一个php-fpm的工作进程在处理多少个请求后就终止掉。这个用来处理因为PHP解析器或引用的第三方库时,造成的内存泄露问题。一般原则是:动态适合小内存机器,灵活分配进程,省内存。静态适用于大内存机器,动态创建回收进程对服务器资源也是一种消耗常用命令查看当前php-fpm总进程数,命令:ps -ylC php-fpm --sort:rss 。其中RSS就是占用的内存情况查看当前php-fpm进程的内存占用情况及启动时间,命令如下:ps -e -o 'pid,comm,args,pcpu,rsz,vsz,stime,user,uid'|grep www|sort -nrk5查看当前php-fpm进程平均占用内存情况:ps --no-headers -o "
前言SpringBoot想必大家都用过,但是大家平时使用发布的接口大都是同步的,那么你知道如何优雅的实现异步呢?这篇文章就是关于如何在Spring Boot中实现异步行为的。但首先,让我们看看同步和异步之间的区别。同步编程:在同步编程中,任务一次执行一个,只有当一个任务完成时,下一个任务才会被解除阻塞。异步编程:在异步编程中,可以同时执行多个任务。您可以在上一个任务完成之前转到另一个任务。在Spring Boot中,我们可以使用@Async注解来实现异步行为。实现步骤定义一个异步服务接口 AsyncService.javapublic interface AsyncService { void asyncMethod() throws InterruptedException; Future<String> futureMethod() throws InterruptedException; }实现定义的接口 AsyncServiceImpl.java@Service @Slf4j public class AsyncServiceImpl impleme
若您已经从 App Store 下载了 macOS Catalina 安装文件,您可以按照以下步骤通过 U 盘进行 macOS 安装:准备一个容量在 16GB 以上的 U 盘,连接到电脑上。在应用程序中打开“终端”。在终端中输入以下命令:sudo /Applications/Install\ macOS\ Catalina.app/Contents/Resources/createinstallmedia --volume /Volumes/MyVolume其中,/Applications/Install\ macOS\ Catalina.app 是您下载的 macOS Catalina 安装文件的路径,/Volumes/MyVolume 是 U 盘的路径,您可以根据实际情况进行修改。按回车键,并在提示输入管理员密码时输入您的管理员密码。在终端完成操作后,您会看到“Install media now available”的提示,这意味着您已经成功地将 macOS Catalina 安装文件写入了 U 盘中。拔出 U 盘,随后您可以将其插入需要安装 macOS Catalina 的电脑中
1. 加载外部配置文件spring.config.additional-location=file:/etc/myapp/config/,classpath:/config/ -Dspring.config.additional-location=file:/etc/myapp/config/,classpath:/config/2. 配置文件在 jar 包的同级目录下的 config 目录下,优先级最高3. 读取外部 logback 配置文件java -jar -Dlogging.config=./config/logback-spring.xml datasync-web.jar
Jason
左手代码右手烟!