记录问题,学会成长
在公司中,我负责管理前后端代码的部署。随着项目数量的增加,我发现手动部署过程不仅耗时,而且容易出错。为了解决这个问题,我决定寻找一个自动化部署工具。经过一番搜索,我发现了 deploy-cli-service,但它主要支持Linux服务器。由于我们公司使用的是Windows服务器,我决定自行修改源码以适应Windows环境。以下是我修改和部署的详细步骤:步骤1:评估现有工具我发现 deploy-cli-service 工具不支持Windows服务器,因此决定对其进行修改。步骤2:修改源码主要问题集中在SFTP操作和文件路径处理上,因为Windows和Linux在这些方面存在差异。步骤3:编写备份和部署脚本我编写了一个函数 backupRemoteFile 来处理备份、删除和解压的过程。const backupRemoteFile = async (config, index) => { try { const { windowsPath, bakDir } = config; const dirName = 'dist'; cons
最近,我注意到许多编程大牛都在积极地刷LeetCode上的算法题目。这激发了我的兴趣,于是我也决定加入这场挑战。初探算法题我尝试了两道题目,虽然最终找到了解决方案,但当我对比官方的解答时,发现自己的代码实现方式与官方的思路大相径庭。这让我意识到,还有很大的提升空间。public class Solution { public int lengthOfLongestSubstring(String s) { Integer num = 0; try { byte[] bytes = s.getBytes("UTF-8"); LinkedHashMap<Byte,Byte> map = new LinkedHashMap<>(); List<Integer> intList = new ArrayList<>(); for (byte b:bytes) {
最近,客户要求将项目部署在Docker上,因此我开始学习并了解Docker的部署流程。下面是我整理的部署步骤:1. 安装Docker首先,在Ubuntu系统上安装Docker:sudo snap install docker2. 创建Dockerfile新建一个Dockerfile文件,并添加以下内容:# 使用官方Ubuntu镜像作为基础镜像 FROM ubuntu # 设置时区 RUN echo "Asia/Shanghai" > /etc/timezone ENV LANG C.UTF-8 ENV LC_ALL C.UTF-8 # 更新软件包列表并安装所需软件包 RUN apt-get update \ && apt-get install -y --no-install-recommends \ openjdk-8-jdk \ python3 \ python3-pip \ && rm -rf /var/lib/apt/lists/* RUN apt-g
本文将指导您如何为PostgreSQL数据库开启归档模式,确保数据的安全性和可恢复性。检查归档模式状态首先,我们需要确认当前数据库的归档模式是否已经开启。在PostgreSQL中,可以通过以下命令查询:show archive_mode; archive_mode -------------- off (1 row)如果返回结果为off,意味着我们需要进行进一步的配置。开启归档模式开启归档模式需要修改postgresql.conf配置文件。以下是具体步骤:创建归档日志目录在服务器上创建一个新的目录,用于存放归档日志文件:mkdir /data/archivelog/编辑配置文件使用文本编辑器打开postgresql.conf文件,并进行以下修改:vi postgresql.conf在文件中添加或修改以下行archive_mode = on # 开启归档 archive_command = 'cp %p /data/archivelog/%f'重启数据库服务配置完成后,需要重启PostgreSQL服务以使更改生效:[postgres@test bin]$ ./p
摘要当您的网站遭受DDoS攻击时,CloudFlare提供了一项强大的安全功能——真人验证,以保护您的在线资产免受恶意流量的侵害。DDoS攻击与真人验证DDoS攻击是一种常见的网络攻击手段,目的是通过大量流量使网站服务不可用。CloudFlare的真人验证功能可以在遭受DDoS攻击时,通过验证访问者是否为真人来减轻攻击影响。开启真人验证的步骤要开启CloudFlare的真人验证功能,请按照以下步骤操作:登录CloudFlare账户,选择需要开启真人验证的域名。进入安全性设置页面。在安全级别选项中,选择“I'm Under Attack!”模式。子域名的真人验证启用“I'm Under Attack!”模式后,此域名下的所有子域名都将要求进行真人验证,以确保整个网站受到保护。定制化配置如果您不希望所有子域名都进入“I'm Under Attack!”模式,CloudFlare提供了灵活的配置规则,允许您创建自定义规则来指定特定子域名或路径应用真人验证。结尾通过CloudFlare的真人验证功能,您可以在遭受DDoS攻击时,有效地保护您的网站不受恶意流量的影响。配置完成后,规则将立即生效,
摘要今天在巡检服务器时,意外发现模型预测占用了惊人的16GB内存!赶紧检查代码,发现每次模型推理都会悄悄增加约200MB的内存占用。经过一番排查,终于找到了问题的根源,并给出了解决方案。发现问题早上的服务器巡检真是让人心惊胆战,竟然发现模型推理的内存占用飙升至16GB!我立刻着手检查代码,发现每次推理时内存都会稳定增长约200MB。经过仔细分析,问题似乎出在这段代码上:// 加载ONNX运行环境和模型 OrtEnvironment environment = OrtEnvironment.getEnvironment(); // 创建会话选项 OrtSession.SessionOptions sessionOptions = new OrtSession.SessionOptions(); // 根据模型路径创建会话 OrtSession session = CommonService.getSession(environment, CommonConstant.YOLO_MODEL_PATH, sessionOptions);每次推理,session都会重新加载,而模型文件的大小恰
摘要搭建个人博客后,我遇到了一个问题:每次访问都需要输入端口号,这不仅不便利,还影响了博客的分享和搜索引擎收录。为了解决这个问题,我开始探索使用CloudFlare进行域名解析和DDNS配置的解决方案。前言虽然可以通过设置导航页和保存书签来简化访问流程,但我更希望博客能够更容易地被分享和收录。因此,我决定利用CloudFlare来优化我的访问体验。CloudFlare DNS配置CloudFlare是一个强大的CDN和DNS服务提供商。通过注册和一些基本配置,我发现要让CloudFlare免费版生效,需要将域名的NS记录指向CloudFlare分配的地址。这意味着我需要将阿里云DNS解析修改为CloudFlare的地址,从而让CloudFlare接管我的域名解析。遇到的挑战配置完成后,我遇到了新问题:之前使用阿里云的CNAME记录将域名解析到tplink的二级域名上,避免了使用DDNS。但转到CloudFlare后,我需要重新考虑DDNS的配置。幸运的是,群晖套件中的GODDNS帮我解决了这个问题。通过下载、安装和配置CloudFlare的API令牌,我成功地让CloudFlare支持
摘要最近,我们对一个使用React Native开发的Android应用进行了功能更新,以满足客户在低光环境下使用摄像头扫码的需求。通过增加手电筒控制功能,我们提升了应用的实用性和用户体验。背景该应用已经长时间未进行维护,但客户提出了一个新的需求:在夜间或光线不足的环境中使用摄像头扫码时,能够自动或手动开启手电筒以提高扫码成功率。解决方案在检查了现有的代码后,我们发现已经包含了开启手电筒的权限。然而,flashMode={RNCamera.Constants.FlashMode.auto} 的设置并没有如预期那样在光线不足时自动开启手电筒。因此,我们决定修改配置,以确保手电筒在需要时始终处于开启状态。代码实现以下是我们对RNCamera组件的配置修改:<RNCamera style={styles.preview} type={RNCamera.Constants.Type.back} flashMode={this.state.torchMode ? RNCamera.Constants.FlashMode.torch : RNCamera.Constants.Fl
摘要在公司最近开发的图像识别模块中,我们专注于识别塔工在上塔过程中是否正确扣好安全绳。经过研究和比较,我们选择了YOLO5作为核心算法,并采用ONNXRuntime在Java环境中进行模型的部署和预测。选择YOLO5YOLO5以其出色的性能和准确性在图像识别领域备受推崇。然而,YOLO5原生并不支持Java环境,这给我们的部署带来了挑战。解决方案:PT到ONNX的转换为了解决这一问题,我们探索了将YOLO5训练后的PyTorch权重文件(.pt)转换为ONNX格式的方法。这样,我们便能利用Java支持的ONNXRuntime进行模型的加载和预测。本地环境搭建我们推荐使用Anaconda来管理Python环境,确保依赖性和版本的一致性。以下是搭建本地环境的步骤:安装Anaconda。创建名为test的新的yolo测试环境:conda create --name test。激活yolo环境:conda activate test。转换流程在环境激活后,进入YOLO5的目录,并执行以下命令来输出ONNX模型:cd path/to/yolo python export.py --weights
摘要在服务器上运行多个使用不同JDK版本的项目时,正确配置Tomcat以确保每个项目都能使用其指定的JDK版本至关重要。问题背景Tomcat默认会使用环境变量JAVA_HOME和JRE_HOME指定的JDK和JRE环境。在多JDK环境中,若不进行适当配置,可能会导致项目无法正常运行。解决方案为了确保项目A和项目B能够分别使用JDK 1.8和JDK 17,我们需要对Tomcat的配置文件进行调整。项目A:使用JDK 1.8对于项目A,我们需要在Tomcat的bin目录下的setclasspath.bat文件中指定JDK 1.8的路径:set JAVA_HOME=C:\Program Files\Java\jdk1.8.0_181 set JRE_HOME=C:\Program Files\Java\jdk1.8.0_181\jre项目B:使用JDK 17对于项目B,由于JDK 17不包含独立的JRE目录,我们需要在setclasspath.bat文件中相应地调整配置:set JAVA_HOME=C:\Program Files\Java\jdk17.0.5 set JRE_HOME=C:
执迷
日常记录开发中遇到的问题...
执迷欢迎你!
上线了新的网站,欢迎去参观啦! https://zhangmingrui.top
建议使用 Ctrl + D 收藏本站,让你不再错过任何篇优秀文章哟!
愿你有诗有梦,有坦荡的远方;愿你历遍山河,仍觉得人间值得!