【Docker】宿主机与内部时差配置
场景
当我们系统的时间与docker容器的时间存在时间差,是因为docker本身的时区没被指定
命令
12# 查看linux 时间date
123# 查看docker时间 ce5dd15b81a7 为容器iddocker exec -it ce5dd15b81a7 date
如下:
解决方式
Dockerfile 设置时间
通过dockerfile 构建镜像时,为其所有的容器设置时区
Dockerfile 文件
123456789101112131415161718#镜像的地址FROM docker.fxxk.dedyn.io/openjdk:8-jdk-alpine# 设置时区为东八区(北京时间)RUN ln -sf /usr/share/zoneinfo/Asia/Shanghai /etc/localtime && \ echo "Asia/Shanghai" > /etc/timezone# 设置容器内部的工作目录WORKDIR app# 复制jar文件到容器app目录COPY sys.jar sys.ja ...
【Linux】工作常用的命令
历史
查看所有历史命令
1history
搜索包含 jar 的历史命令
执行以下命令仅显示包含 jar 的历史命令:
1history | grep jar
查找历史删除命令
1history | grep rm
会话
screen 是一个 Linux/Unix
下的终端多路复用器,它允许用户在一个单一终端窗口内启动和控制多个终端会话。在
screen 会话中启动的进程,即使用户断开 SSH
连接,进程也能继续运行。
创建会话
12# 会话名称screen -S ts_api
在 screen 会话中运行命令
1java -jar ts.jar
创建
或者
123456# ts_api 为会话名称# java -jar /root/soft/test/ts.jar 为会话中执行的命令# -d 启动一个新的 screen 会话并立即将其置于后台(即分离状态),这样你就不会立即进入这个会话# -m 强制创建一个新的会话。# -S 为新创建的会话指定一个名字screen -dmS ts_api java -jar /root/soft/test/ts.j ...
【Azure】在Aure pipelines构建和部署SpringBoot的CI/CD流水线
Azure
Azure
是微软推出的云计算服务平台,提供了一系列的云服务,包括计算、分析、存储和网络等。用户可以利用这些服务开发、测试、部署和管理应用程序。Azure
支持多种编程语言、工具和框架,使其适用于各种需求,从简单的云应用到复杂的企业级解决方案。其核心优势在于高可用性、灵活性和安全性,帮助企业降低IT成本,提高运营效率。Azure
还支持混合云环境,允许企业将本地数据中心与云服务无缝集成。
Pipelines
Azure Pipelines
是Azure DevOps 服务中的一部分,用于实现持续集成和持续部署(CI/CD)。它支持多种编程语言和项目类型,通过定义构建和发布管道,帮助开发团队自动化代码编译、测试和部署流程。Azure
Pipelines 可以集成 GitHub、Azure Repos
等源码管理工具,确保代码变更能迅速且可靠地发布到生产环境。其核心功能包括并行构建、云托管的构建代理、丰富的任务库和扩展支持,使其成为
DevOps 实践中不可或缺的工具,有助于提高开发效率和软件质量。
场景
当我们springboot项目中,假设有三个分支 ...
【Gradle】安装配置及IDEA配置
下载
Gradle 官网:https://gradle.org/
Gradle 版本已经来到了 8.9
点击install :
进到releases page
下拉,选择6.4.1 版本, 选择binary-only
下载后
解压
解压,跟maven一样解压就行,目录结构如下
配置环境变量
新增系统环境变量GRADLE_HOME
123GRADLE_HOMED:\soft\dev_soft\gradle-6.4.1
添加到path
1%GRADLE_HOME%\bin
我们接着再配一个 GRADLE_USER_HOME 环境变量,
GRALE_USER_HOME 相当于配置 Gradle
本地仓库位置
验证
1gradle -v
IDEA 配置
【macOs】mac系统操作
状态栏
顶部状态栏,常用的选项有“关机”,“重启”,“睡眠”
“关于本机” 可以查看电脑的一些配置信息
“强制退出” 如果某个应用卡死了 点击此处 强行退出对应应用
(相当于window系统的任务管理器) 对应的键盘快捷键为 option +
command + ESC
当打开不同程序,左上角的状态栏有不同的变换
音乐软件的话如下:
浏览器如下:
右上角的状态栏,显示日期时间
我们可以在底部的 程序坞 的 “系统偏好设置“
选择程序坞与状态栏
控制哪些选项可以直接出现在顶部的菜单中
如果你按住command, 还可以拖动调整他们的顺序
访达
跟 “我的电脑”
有几分相似,自动为你归档好了最近使用的文件,应用程序,桌面文件
,文稿以及下载的内容
废纸篓
也就是回收站,清空它的时候会有一个很好听的音效
程序坞
可以放一些常用的应用,只需要将他们从启动台或者访达中的应用程序,在吸附的时候调整摆放位置,拖出去为移除
程序坞中的 小黑点 可以让你判断程序是否在后台运行
程序坞也不一定非要显示底部,在系统 ...
【JavaMail】使用JavaMail向QQ发送邮件
概述
JavaMail 是一个用于发送和接收电子邮件的 Java
API。它提供了一个平台无关和协议无关的框架,允许开发人员通过标准电子邮件协议(如
SMTP、POP3 和 IMAP)来创建、发送和读取电子邮件。以下是 JavaMail
的一些关键概念和功能介绍:
基本概念
Session: JavaMail 的 Session
对象表示邮件会话。它存储了配置信息,如邮件服务器地址和认证信息。
Store: Store
对象用于与邮件服务器通信,特别是接收邮件时。它支持协议如 IMAP 和
POP3。
Transport: Transport
对象用于发送邮件。它支持协议如 SMTP。
Message: Message
对象代表一封电子邮件。JavaMail 提供了 MimeMessage
类,用于创建和解析 MIME 类型的电子邮件。
Folder:Folder
对象代表邮件文件夹,如收件箱、发件箱、草稿等。通过 Folder
对象可以操作邮件。
实现
步骤
发送电子邮件的基本步骤包括
1、创建一个 Session 对象。
2、使 ...
【系统设计】电梯调度系统
设计一个电梯调度系统涉及多个方面,包括用户界面、系统架构、调度算法、安全性等。以下是一个基本的设计框架:
系统需求分析
用户需求
1、支持多层楼的请求
2、提供上行和下行的请求
3、提供紧急停靠的功能
4、显示当前电梯位置和运动方向
技术需求
1、高效的调度算法
2、实时响应用户请求
3、处理并发请求
4、系统的高可用性和可靠性
系统架构设计
前端
电梯内控制面板:按钮、显示屏
各楼层外的请求按钮(上行和下行)
如下图:
后端
电梯控制器:处理电梯的运动,门的开关等
调度系统:接受请求并决定电梯的调度
状态监控:实时监控电梯状态
如下图:
通信模块
实时数据传输
故障报警和紧急处理
调度算法设计
常用的调度算法包括:
先到先服务: 简单但是可能不高效
扫描算法:电梯像磁头一样来回移动,处理上下行请求,减少等待时间
循环扫描算法:类似扫描算法
,但每次到达顶层时直接返回起始点,提高效率
优化sacn算法:电梯只有请求的最远点,再反向移动
调度过程
过程描述:
用户A和用户B在1F【外部控制器】中点击[上行]。 ...