劳资最帅
IP:
29关注数
1粉丝数
37获得的赞
工作年
编辑资料
链接我:

创作·49

全部
问答
动态
项目
学习
专栏
劳资最帅

大佬们,有人用 win11 写 go 程序吗?

我现在用 win11 写 go 的时候遇到了一个问题 就是长时间(超过 10 分钟)不编译 go 程序,修改了代码后,再次编译会很慢很慢,同样的代码,在 win10 的时候,就很快。不知道是为什么!
7
1
0
浏览量313
劳资最帅

vue启动时候发生错误,哪里出现问题呢?

"unexpected token",基本上就是 JS runtime/babel/webpack 不认识代码当中的新语法。 看错误信息猜测是 babel 不认识 "export *",解决方案有几个: 1. 升级脚手架到最新版本 2. 升级 preset 配置到较新的版本 3. 安装支持 "export *" 的 babel plugin
0
0
0
浏览量0
劳资最帅

element ui 树状表格选择父节点子节点全选。子节点不全选父节点半选?

推荐你使用vxe-table,vxe-table带虚拟滚动,性能较好,且能实现树状表格的勾选 "https://vxetable.cn/v4/#/table/tree/normal" (https://link.segmentfault.com/?enc=g28kFi5Dsp8eUJFZ3suW%2BA%3D%3D.CVdFZNxxbXuaJyYlx%2FnoWMDiPrnOpVf3DXuCInsoV898hiw2f4%2FIirqUSls8vS%2Fb)
0
0
0
浏览量0
劳资最帅

如何在表格组件中加入进度条形图?

表格中指定一列,内容按照数据显示为进度图,并显示百分比文字。如何在表格组件中实现这个效果? "图片" (https://wmprod.oss-cn-shanghai.aliyuncs.com/images/20241220/ca84532c7678d17115c3b02be6a4bb43.png)
14
1
0
浏览量342
劳资最帅

为什么同一个浏览器版本 在不同的电脑上 显示同一个网页 滚动条样式不一样?

如题 火狐116.0.3 两台电脑都是这个浏览器 但是一个滚动条是粗的 一个是细的
16
1
0
浏览量273
劳资最帅

vue3 中如果 ref 里面的值很多会不会影响性能?

问这个问题估计是因为Vue2的时候采取的"defineProps"方案导致的。现在的Vue3采取的"Proxy"的方案,所以在初始化的时候没有Vue2的速度慢的问题。 但是"Options"中有大量的属性一定是一个不好的实现,简易分成多个,便于管理。
0
0
0
浏览量0
劳资最帅

有大佬可以帮忙看看菜鸟python入门问题吗?

def is_integer_string(s): if not s.isdigit() and s[0]!='-': return False return int(s)==s def print_hourglass(n,sym): i=1 while n>=i**2: print(''*(i-1)+sym*i*2) print(''*(i-1)+sym*(i+1)*2) i+=2 while i>0: print(''*(i-1)+sym*i*2) i-=2 print(n-i**2) n=is_integer_string(input()) try: n,sym=map(int,input().split()) except ValueError: print("请输入一个数字") print(print_hourglass(n,sym)) 这串代码后 Traceback (most recent call last): File "/tmp/a.py", line 20, in print(print_hourglass(n,sym)) NameError: name 'sym' is not defined. Did you mean: 'sum'? 这个sym的变量我该怎么修改
0
1
0
浏览量16
劳资最帅

react如何获取兄弟组件的状态呢,应该在哪个生命周期及时获取才对?

请问一下,在React组件设计的时候,想要基于条件加载组件的内容, "image.png" (https://wmprod.oss-cn-shanghai.aliyuncs.com/images/20241210/df0beadb03a7b86a88da5584f03abc0a.png) 请问应该如何做呢? 1、比如,我在左侧的灰色区域有一个按钮,点击一下右边的sidebar就切换容器里面的UI内容。 这个是可以做到的对吗? 应该在哪个生命周期里面进行获取呢,才能及时更新UI内容? 2、左侧content组件的状态如何被右侧的rightsidebar拿到呢? 也就是说兄弟组件之间如何获取呢?我们知道可以用三方的redux等,但是这里不想要这样获取,有没有直接引用到左侧的content组件的方式直接获取? 3、是否可以rightSidebar持有左侧的content组件,到时候可以直接调用获取状态。
0
1
0
浏览量19
劳资最帅

ZipInputStream 指定字符集?

new ZipInputStream(new FileInputStream("test.zip"), StandardCharsets.UTF_8) 没有用呢,中文的文件、文件夹仍会报错("malformed input off : 1, length : 1")。 "image.png" (https://wmprod.oss-cn-shanghai.aliyuncs.com/images/20241208/f462552f1c565fa5afadb2a367327bde.png) "image.png" (https://wmprod.oss-cn-shanghai.aliyuncs.com/images/20241208/0753960bfdf07b4b94bf17f0452cfdc2.png) 这里都有注释的嘛,为什么会这样?
0
1
0
浏览量14
劳资最帅

and or 与三目运算符的区别?

区别还是非常大的。 "and"与"or"是逻辑运算符,一般是组成判断条件; 三目运算符一般是用来作为表达式"x = a if a > b or a b or a < 10: x = a else: x = b
0
0
0
浏览量0
劳资最帅

Http 响应码的问题应该怎么选择?

一般来说 如果业务逻辑失败 比如登录的账号或者密码错误 那么 "http" 应该响应 "500" 还是"200" ? 那么其他业务情况呢 比如 输入的参数有误 或者预期有数据但实际没数据 应该用什么样的响应码?
0
1
0
浏览量18
劳资最帅

大家对于微信封禁小程序和 h5 链接是如何预防和处理的?

做的一些小程序和h5投放到微信有时候会被封(可能一些活动文案问题或用户举报等),影响业务,网上搜了也没有什么好的解决方案,请问下大家遇到这种情况是如何处理的呢,比如怎么做能降低被封的概率,或者被封后如何第一时间感知到,并最快时间解决呢? "image.png" (https://wmprod.oss-cn-shanghai.aliyuncs.com/images/20241203/578f0369aef2004cb82a795dd62241a4.png)
0
1
0
浏览量22
劳资最帅

python 如何分批查询Oracle的数据?

python 如何分批查询Oracle 就是比如数据库有几万数据第一次查询前100以此类推一直到查询到所有数据
0
1
0
浏览量17
劳资最帅

请问微信小程序,有自带监听左滑返回事件的api吗?

我的小程序中,点击左上角返回箭头,我是指定了一个跳转页,但是用户如果侧边左滑返回上一页,和我想要跳转的页面不符,请问如何监听用户左侧侧边,滑动 返回事件?
0
1
0
浏览量14
劳资最帅

window.postMessage 可以跨域传递不能被序列化的数据吗?

传输过程只能时字符串,所以,只能在发送时做编码,接收时作解码处理,你这个情况只能传递一下关键信息过去。你在请求一个网络接口的时候也是无法传递你说的这写Error或Function
0
0
0
浏览量0
劳资最帅

图片中文字识别后就地进行拖蓝是如何实现的?

拖蓝指的是类似文本编辑中的选择文本。初步估计是文本识别的接口返回了定位信息,但是具体的实现细节不太清楚?
0
1
0
浏览量14
劳资最帅

如何在Vue或Nuxt项目中更好地引用图片资源?

vue或nuxt项目里.vue文件只能用require引用图片资源吗? 我在vuex的state里面定义了对象的数组arr,里面每个对象有个imgsrc的属性,如imgsrc:'~/assets/img/hello.png' 但是在index.vue中遍历state里这个arr, in arr,用img标签获取不到item.imgsrc的图片。 然后在index.vue的中data里面定义变量,用require方法,然后img标签使用这个变量才能获取图片。 想问 : 由于state中arr数组中的对象较多,在里面写图片的路径感觉上比较整洁。如果在index.vue中,对上百个图片都使用require方法,有点低级。所以有什么好方法解决这个问题吗
0
1
0
浏览量20
劳资最帅

elasticsearch 如何将一个搜索需求实现?

Elasticsearch 安装ik扩展 (根据你自己Es使用版本,安装对应的ik分词器) mapping { "id": { "type" : "integer", "index":"not_analyzed" }, "title":{ "type" : "string", "index" : "analyzed", "analyzer" : "ik_smart" } } ik_smart or ik_max_word 自行尝试 搜索 GET /_search { "query": { "match" : { "title" : "美国 黑人" } } }
0
0
0
浏览量0
劳资最帅

这代码是重新打开一个浏览器,而不是复用我现有的,如何解决?

你需要做什么?
0
0
0
浏览量0
劳资最帅

用户退出登录时JWT的处理方式?

如果你的jwt过期时间定义的如果足够短,就可以让前端直接剔除,业务安全性肯定没有拉入黑名单的安全性强, 当然如果你的业务需要达到很高的安全等级了, 你只是在 jwt 下功夫是不行的, 你将 jwt 拉入黑名单其实并不能防止 jwt 被盗用的问题, 理论上 现在主要应用 无论是 移动端 或者 pc端, 很少有会有用户主动会去 进行退出账户的操作, 导致业务实际其实都是 jwt 自然过期失效。其实这块代码也没提升安全性。 不过你想提高接口的安全性,可以从接口签名的方向去做。接口签名一般会把 时间戳,请求参数,流水号 这三个数据进行加密来实现接口的安全性 首先接口签名有以下好处 * 数据防篡改: 接口签名算法可以把接口的参数也纳入加密中,一般会通过摘要算法把请求参数进行处理, 当服务端收到消息可以把请求数据通过同样的算法计算后, 然后进行对比,如果服务端算出的值与客户端传的值是不同的,证明数据进行过篡改 * 有效期校验: 签名里包含的时间戳,可以应对重放攻击, 当攻击者通过某种手段获取到接口请求, 直接啥都不改, 重复请求已获取返回的话, 如果你的允许相差5s的话, 那这个接口的有效期只有 5s ,攻击者只能在5s内获取你的接口信息,并在5s内进行使用, * 防止接口重复调用: 签名里的流水号,可以用于接口的唯一性确认, 你可以当接口请求后,放入redis 的黑名单里, 当又出现这个流水号时,你就可以判定有人重复使用这个请求,属于非法请求 具体你可以看看这篇文章 "https://www.cnblogs.com/hjzgg/p/11062043.html" (https://link.segmentfault.com/?enc=MCI2z23EK7VCvOpl3eJXfg%3D%3D.04aVDs%2FCNb13liudLb2tWMYFH2bm0TLDbNb3s2QrIoL2S2hQVbm4GvvIH5fQtdJo)
0
0
0
浏览量0
劳资最帅

puppeteer生成pdf与网页显示为什么不一致?

用puppeteer生成网页的pdf,网页排版用的div(float)>table ,网页看是正常的,生成pdf就多了一点空隙 网页正常显示 "image.png" (https://wmlx-new-image.oss-cn-shanghai.aliyuncs.com/images/20241030/356d671c263fde060e5d7533e5e08120.png) pdf显示多了空白间隙 "image.png" (https://wmlx-new-image.oss-cn-shanghai.aliyuncs.com/images/20241030/81ec8788a0a70781d026351f1128cff7.png) finderror.html Document * { margin: 0; padding: 0; } /* A4-纵向 */ .wrapper-v { /* 边距为0 */ width: 794.12px; /* 边距为5cm,对应需减去边距 */ width: 756.305px; /* min-height: 1090px; */ /* width: 1075px; height: 1568px; */ } /* A4-横向 */ .wrapper-h { /* width: 1090px; min-height: 794px; */ /* 边距为0 */ width: 1123.11px; /* 边距为0.5cm,对应需减去左右边距 */ width: 1085.295px; /* width: 1569px; height: 1075px; */ } .wrapper { /* display: flex; flex-direction: column; align-items: center; clear: both; */ /* 使用样式控制分页 */ /* margin-left: 25px; */ /* 影响puppeteer分页 */ /* display: flex; flex-direction: row; align-items: center; flex-wrap: wrap; */ box-sizing: border-box; /* 控制在打印预览中的左边距,设置为0则贴边,上边距在page里设置 */ /* padding: 15px 15px; */ /* padding-top: 15px; */ /* padding-left: 15px; */ padding: 1px; /* clear: both; */ overflow: hidden; /* 使用样式控制分页 */ } .w-h, .w-v { float: left; /* page-break-inside: avoid; */ } /* 纵向-外框 */ .w-v { /* width: 266px; height: 361px; */ width: 272.27px; height: 369.07px; /* 1cm = 39.862px */ /* width: 287.006px; height: 389.053px; */ /* 1cm=41.192px */ /* width: 298.742px; height: 404.962px; */ } /* 横向-外框 */ .w-h { /* width: 382px; height: 235px; */ width: 391.01px; height: 240.13px; /* width: 392px; height: 241px; */ } .wrapper-v .w-v:nth-of-type(4n) { /* margin-bottom: 180px; */ page-break-after: always; } .wrapper-h .w-v:nth-of-type(6n) { /* margin-bottom: 120px; */ page-break-after: always; } .w-v table { width: 100%; height: 100%; border-collapse: collapse; border: 1px solid black; page-break-inside: avoid; } .w-v table tr:first-of-type { font-weight: bolder; font-family: "仿宋"; height: 32px; line-height: 32px; text-align: center; font-size: 15px; letter-spacing: 8px; } .w-v table tr:nth-of-type(2) { height: 208px; text-align: center; } .w-v table tr:nth-of-type(3), .w-v table tr:nth-of-type(4), .w-v table tr:nth-of-type(5) { height: 28px; } .w-v table tr:nth-of-type(6) { height: 36px; text-align: center; font-family: fangsong; font-weight: bolder; } .w-v table tr:nth-of-type(2) td .w-v table tr:nth-of-type(3) td, .w-v table tr:nth-of-type(4) td, .w-v table tr:nth-of-type(5) td { font-size: 16px; text-align: center; } .w-v table tr:nth-of-type(3) td, .w-v table tr:nth-of-type(4) td, .w-v table tr:nth-of-type(5) td { font-size: 14px; line-height: 16px; text-align: center; } .w-v table tr:nth-of-type(2) td { /* width: 260px; */ line-height: 30px; font-family: "Microsoft YaHei"; font-size: 26px; /* 使用puppeteer时,竖向文字不起效果 */ /* writing-mode: vertical-lr; */ /* letter-spacing: 5px; */ } /* 解决使用puppeteer时,竖向文字不起效果 */ .w-v table tr:nth-of-type(2) td span { display: inline-block; width: 25px; line-height: 32px; } /* .w-v table tr:nth-of-type(3) td, .w-v table tr:nth-of-type(4) td{ vertical-align: middle; } */ .w-v table tr:nth-of-type(5) td { font-size: 15px; } @media print { body { margin: 0; padding: 0; } @page { /* margin: 1cm -0.25cm; */ /* margin: 0cm; */ /* 此处设置size 影响pdf横向纸张生成 */ /* size: a4; */ margin: 0.5cm; scale: 1; /* 设置打印上边距 */ /* margin-top: 25px; */ } body { /* 页面背景色 通过js控制 */ /* Chrome、Safari 等 webkit 浏览器内核 */ -webkit-print-color-adjust: exact; /* 火狐 */ print-color-adjust: exact; color-adjust: exact; } .wrapper { margin: 0; padding: 0; } } createPdf.js const puppeteer = require("puppeteer"); const path = require("path"); (async function () { const browser = await puppeteer.launch({ headless: true, }); const page = await browser.newPage(); await page.goto( "file:///G:/finderror.html", { timeout: 0, } ); await page.waitFor(5000); await page.pdf({ scale: 1, printBackground: true, /* ————————————更改纸张方向及颜色———————————————— */ // 设置纸张是否为横向 landscape: true, /* ————————————更改纸张方向及颜色———————————————— */ format: "A4", path: path.join(__dirname, "./测试.pdf"), }); await browser.close(); })(); 尝试: * 与collapse无关 * 与添加page-break-after:always无关 希望获得的结果: 生成pdf与网页预览一致
0
1
0
浏览量16
劳资最帅

过滤器中修改响应体后,前端无法正常解析,求教如何处理?

在过滤器中修改响应体后,前端无法正常解析返回的Json对象。这个过滤器是为了实现把带id的Long字段转换成String再返回给前端。 @Component @Slf4j public class LongTypeFilter extends OncePerRequestFilter { private final ObjectMapper objectMapper = new ObjectMapper(); @Override protected void doFilterInternal(HttpServletRequest request, HttpServletResponse response, FilterChain filterChain) throws ServletException, IOException { log.debug("进入过滤器"); // 使用 ContentCachingResponseWrapper 包装响应 ContentCachingResponseWrapper responseWrapper = new ContentCachingResponseWrapper(response); // 过滤器链继续 filterChain.doFilter(request, responseWrapper); // 获取原始的响应数据 byte[] responseBody = responseWrapper.getContentAsByteArray(); // 获取原始响应的字符编码 String charset = response.getCharacterEncoding(); String contentType = response.getContentType(); // 判断是否需要进行 JSON 数据转换 if (contentType != null && contentType.startsWith(MediaType.APPLICATION_JSON_VALUE)) { // 将原始响应数据转换为 JsonNode JsonNode rootNode = objectMapper.readTree(new String(responseBody, charset)); // 判断是否包含 RespResult 对象 if (rootNode.has("code") && rootNode.has("msg") && rootNode.has("result")) { JsonNode resultNode = rootNode.get("result"); // 判断 result 属性是否为对象,并且包含 Long 类型字段 checkAndConvertLongToString(resultNode); } log.debug(rootNode.toString()); // 将修改后的数据写回响应 String modifiedResponse = rootNode.toString(); //responseWrapper.setContentType(MediaType.APPLICATION_JSON_VALUE + ";charset=" + charset); byte[] modifiedBytes = modifiedResponse.getBytes(charset); responseWrapper.setContentLength(modifiedBytes.length); responseWrapper.getWriter().write(modifiedResponse); responseWrapper.copyBodyToResponse(); log.debug(response.getContentType()); } else { // 非 JSON 格式的响应数据,直接写回响应 responseWrapper.copyBodyToResponse(); } } private void checkAndConvertLongToString(JsonNode node) { if (node.isArray()) { // 如果是数组,遍历数组内的元素 for (JsonNode arrayElement : node) { if (arrayElement.isObject()) { // 如果数组元素是对象,递归调用处理对象 checkAndConvertLongToString(arrayElement); } } } else if (node.isObject()) { // 如果是对象,继续处理对象内的字段 Iterator fieldNames = node.fieldNames(); while (fieldNames.hasNext()) { String fieldName = fieldNames.next(); JsonNode field = node.get(fieldName); if (field != null) { if (field.isLong() && field.canConvertToLong() && field.asLong() > Math.pow(2, 53) - 1) { ((ObjectNode) node).putPOJO(fieldName, String.valueOf(field.asLong())); } else if (field.isObject()) { checkAndConvertLongToString(field); } } } } } } 尝试了重新设置ContentType不行,ContentLength应该也没问题吧。前端拿到的返回数据是这样的。 {data: '{"code":200,"msg":"访问成功","result":[{"id":101433906…ice":0.02,"courseSort":3}]}],"time":"2023-12-19"}', status: 200, statusText: '', headers: AxiosHeaders...}
0
1
0
浏览量15
劳资最帅

input标签上传文件夹页面卡死应该怎么办?

使用input标签上传文件时,当用户选择文件夹且文件夹中包含太多文件时,页面会卡死或者崩溃。 请问这种情况应该怎么优化?谢谢
0
1
0
浏览量14
劳资最帅

Ag-Grid 许可证使用限制详解?

如果你确实一定要使用这个table组件库,那么最好还是单独和他们联系。而不是在社区提问,毕竟思否看起来并没有他们的开发团队成员在活跃。 以下回答是在我大概看了一下说明的基础上,如果你要进步一追问最好是通过邮件联系他们。 *** 是否可以多个开发者同时使用 ,不可以。如果项目有多个前端开发就需要购买多个单一授权。至于多个人同时使用,应该会在控制台抛出异常 + 视图水印之类,当然也由直接在本地开发环境不能使用商用版本的功能。 然后就一个单一授权肯定不能在多个项目中使用,这个是很明确的。你购买的是单一应用许可证,部署时还需要有一个部署许可证,除非你不部署了。 *** 举个例子: "单一应用多套部署" (https://wmprod.oss-cn-shanghai.aliyuncs.com/c/user/20241016/7c8d1e5bca228540c380bc14bd848323.png) 你现在的开发团队,有4个前端开发者。然后你需要部署在3套服务。那么就需要购买4个单一应用许可证 + 3个部署许可证 *** 然后还有一个多项目授权的许可证,我就用他们那边对于单一应用许可证和多应用许可证的图片来回答了,还是很清晰的。 "单应用授权-多个应用多个开发者" (https://wmprod.oss-cn-shanghai.aliyuncs.com/c/user/20241016/2d3d38f70e6b7e7401084fb9bedbfd11.png) "多应用授权-多个应用多个开发者" (https://wmprod.oss-cn-shanghai.aliyuncs.com/c/user/20241016/5a0cdd12ce9a8fdadedc85009ad54a01.png) *** 至于他们是如何检测的肯定不会告诉你,但是很多都是通过域名来绑定授权。 其实你不考虑高级功能,完全可以用社区版(是被允许的),不需要购买授权。
0
0
0
浏览量0
劳资最帅

StringRedisTemplate无法注入?

上下文中找不到对应的 Bean。 试一下以下的几项检查: 1. 依赖: 确保你的项目依赖中包含了 Spring Data Redis 相关的库。 Maven: org.springframework.boot spring-boot-starter-data-redis 2. 配置文件: 确保你的 Spring 配置文件中有 Redis 的配置,我看你也配置了。 3. 检查是否有 Redis 相关的 Bean: 在你的 Spring 配置类或主应用程序类上,确保有 "@EnableCaching" 注解,并且有一个配置 "StringRedisTemplate" 的 Bean:import org.springframework.context.annotation.Bean; import org.springframework.context.annotation.Configuration; import org.springframework.data.redis.connection.RedisConnectionFactory; import org.springframework.data.redis.core.StringRedisTemplate; @Configuration public class RedisConfig { @Bean public StringRedisTemplate stringRedisTemplate(RedisConnectionFactory redisConnectionFactory) { return new StringRedisTemplate(redisConnectionFactory); } } 确保这个配置类被正确地扫描到了 Spring 的上下文中。 4. 检查 Redis 服务器: 确保你的 Redis 服务器在运行,并且配置的连接信息是正确的。 5. 清理和重新构建: 尝试清理构建缓存,然后重新构建项目。在 IDEA 中,通过 "Build" > "Rebuild Project" 重新构建。
0
0
0
浏览量0
劳资最帅

AMH面板的ams3通用云存储备份,为什么连不上阿里云OSS呢?

AMH面板的ams3通用云存储备份,为什么连不上阿里云OSS呢? 之前用的alioss-1.7,id也催,key也对,反复试过了,就是不行。 没办法,就接着用ailoss了。 截图给删了,其实截图也还是哪几项参数。翻来覆去的设置。就是不成功。 翻来覆去的设置。就是不成功。 不知道有没有设置成功的给个参考。 谢谢。
0
1
0
浏览量14
劳资最帅

postgresql:如何创建一个可以显示值出来的索引呢?

idx_date 这个是索引,和字段并不能用,你不能使用select 来查看索引
0
0
0
浏览量0
劳资最帅

vue2,父组件重复给子组件props传递字符串类型的字段,子组件watch不会重复触发怎么办?

"watch"是监听数据变化才会执行,第一次"data"为"null"点击的时候变成"true","watch"会执行,之后的每次点击都是"true"所以"watch"不会执行因为数据没有发生变化。
0
0
0
浏览量0
劳资最帅

vue+node文件上传是如何避免在远端创建文件?

我在做一个上传文档的功能,实现步骤如下: ·、从前端传递一个 "formData" 到后端; 2、后端(node.js)通过 "multiparty" 解析上传的文档; 3、接收到的文档会保存在本地 "public" 目录下; 4、之后 "mammoth" 再通过访问远程文档路径创建 dom 返回给前端; 请问有没有办法不在本地 "public" 目录创建接受的文件副本,而是直接将接受到的文档解析后转化为 dom 返回给前端呢?
0
1
0
浏览量141
劳资最帅

纯 nodejs 项目如何调用 nestjs 微服务?

我们知道 nestjs http 服务器调用 nestjs 微服务是简单的,已经封装好了, 那么脱离nestjs 环境,普通的 nodejs 环境 如何调用微服务呢?
0
1
0
浏览量137
劳资最帅

java工程调试如何定位到调用者(基础问题)?

在注册完用户,邮箱验证后,执行一次"update"修改用户状态就可以了,找不到哪里执行了"delete"操作,导致用户信息没有了。所以把"user.xml"里的"delete"部分删除了(如下),控制台提示如下。 问题:如何通过提示定位到调用"delete"的代码? 1.user.xml delete from user where email=#{email} 2.控制台部分输出: org.apache.ibatis.binding.BindingException: Invalid bound statement (not found): com.mooc.house.biz.mapper.UserMapper.delete at org.apache.ibatis.binding.MapperMethod$SqlCommand.(MapperMethod.java:230) ~[mybatis-3.4.2.jar:3.4.2] at org.apache.ibatis.binding.MapperMethod.(MapperMethod.java:48) ~[mybatis-3.4.2.jar:3.4.2] at org.apache.ibatis.binding.MapperProxy.cachedMapperMethod(MapperProxy.java:65) ~[mybatis-3.4.2.jar:3.4.2] at org.apache.ibatis.binding.MapperProxy.invoke(MapperProxy.java:58) ~[mybatis-3.4.2.jar:3.4.2] at com.sun.proxy.$Proxy83.delete(Unknown Source) ~[?:?] at com.mooc.house.biz.service.MailService$1.onRemoval(MailService.java:34) ~[classes/:?] at com.google.common.cache.LocalCache.processPendingNotifications(LocalCache.java:1956) [guava-18.0.jar:?] at com.google.common.cache.LocalCache$Segment.runUnlockedCleanup(LocalCache.java:3460) [guava-18.0.jar:?] at com.google.common.cache.LocalCache$Segment.postWriteCleanup(LocalCache.java:3436) [guava-18.0.jar:?] at com.google.common.cache.LocalCache$Segment.remove(LocalCache.java:3107) [guava-18.0.jar:?] at com.google.common.cache.LocalCache.remove(LocalCache.java:4173) [guava-18.0.jar:?] at com.google.common.cache.LocalCache$LocalManualCache.invalidate(LocalCache.java:4765) [guava-18.0.jar:?] at com.mooc.house.biz.service.MailService.enable(MailService.java:81) [classes/:?] at com.mooc.house.biz.service.MailService$$FastClassBySpringCGLIB$$330c1391.invoke() [classes/:?] at org.springframework.cglib.proxy.MethodProxy.invoke(MethodProxy.java:204) [spring-core-4.3.9.RELEASE.jar:4.3.9.RELEASE] at org.springframework.aop.framework.CglibAopProxy$DynamicAdvisedInterceptor.intercept(CglibAopProxy.java:669) [spring-aop-4.3.9.RELEASE.jar:4.3.9.RELEASE] at com.mooc.house.biz.service.MailService$$EnhancerBySpringCGLIB$$f5d46d61.enable() [classes/:?] at com.mooc.house.biz.service.UserService.enable(UserService.java:100) [classes/:?] at com.mooc.house.biz.service.UserService$$FastClassBySpringCGLIB$$2590eefd.invoke() [classes/:?] at org.springframework.cglib.proxy.MethodProxy.invoke(MethodProxy.java:204) [spring-core-4.3.9.RELEASE.jar:4.3.9.RELEASE] at org.springframework.aop.framework.CglibAopProxy$DynamicAdvisedInterceptor.intercept(CglibAopProxy.java:669) [spring-aop-4.3.9.RELEASE.jar:4.3.9.RELEASE] at com.mooc.house.biz.service.UserService$$EnhancerBySpringCGLIB$$2fa75e41.enable() [classes/:?] at com.mooc.house.web.controller.UserController.verify(UserController.java:47) [classes/:?] at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) ~[?:1.8.0_181] at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source) ~[?:1.8.0_181] at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source) ~[?:1.8.0_181] at java.lang.reflect.Method.invoke(Unknown Source) ~[?:1.8.0_181] at org.springframework.web.method.support.InvocableHandlerMethod.doInvoke(InvocableHandlerMethod.java:205) [spring-web-4.3.9.RELEASE.jar:4.3.9.RELEASE] at org.springframework.web.method.support.InvocableHandlerMethod.invokeForRequest(InvocableHandlerMethod.java:133) [spring-web-4.3.9.RELEASE.jar:4.3.9.RELEASE] at org.springframework.web.servlet.mvc.method.annotation.ServletInvocableHandlerMethod.invokeAndHandle(ServletInvocableHandlerMethod.java:97) [spring-webmvc-4.3.9.RELEASE.jar:4.3.9.RELEASE] at org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.invokeHandlerMethod(RequestMappingHandlerAdapter.java:827) [spring-webmvc-4.3.9.RELEASE.jar:4.3.9.RELEASE] at org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.handleInternal(RequestMappingHandlerAdapter.java:738) [spring-webmvc-4.3.9.RELEASE.jar:4.3.9.RELEASE] at org.springframework.web.servlet.mvc.method.AbstractHandlerMethodAdapter.handle(AbstractHandlerMethodAdapter.java:85) [spring-webmvc-4.3.9.RELEASE.jar:4.3.9.RELEASE] at org.springframework.web.servlet.DispatcherServlet.doDispatch(DispatcherServlet.java:967) [spring-webmvc-4.3.9.RELEASE.jar:4.3.9.RELEASE] at org.springframework.web.servlet.DispatcherServlet.doService(DispatcherServlet.java:901) [spring-webmvc-4.3.9.RELEASE.jar:4.3.9.RELEASE] at org.springframework.web.servlet.FrameworkServlet.processRequest(FrameworkServlet.java:970) [spring-webmvc-4.3.9.RELEASE.jar:4.3.9.RELEASE] at org.springframework.web.servlet.FrameworkServlet.doGet(FrameworkServlet.java:861) [spring-webmvc-4.3.9.RELEASE.jar:4.3.9.RELEASE] at javax.servlet.http.HttpServlet.service(HttpServlet.java:635) [tomcat-embed-core-8.5.15.jar:8.5.15] at org.springframework.web.servlet.FrameworkServlet.service(FrameworkServlet.java:846) [spring-webmvc-4.3.9.RELEASE.jar:4.3.9.RELEASE] at javax.servlet.http.HttpServlet.service(HttpServlet.java:742) [tomcat-embed-core-8.5.15.jar:8.5.15] at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:231) [tomcat-embed-core-8.5.15.jar:8.5.15] at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166) [tomcat-embed-core-8.5.15.jar:8.5.15] at org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:52) [tomcat-embed-websocket-8.5.15.jar:8.5.15] at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:193) [tomcat-embed-core-8.5.15.jar:8.5.15] at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166) [tomcat-embed-core-8.5.15.jar:8.5.15] at org.springframework.boot.web.filter.ApplicationContextHeaderFilter.doFilterInternal(ApplicationContextHeaderFilter.java:55) [spring-boot-1.4.7.RELEASE.jar:1.4.7.RELEASE] at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:107) [spring-web-4.3.9.RELEASE.jar:4.3.9.RELEASE] at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:193) [tomcat-embed-core-8.5.15.jar:8.5.15] at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166) [tomcat-embed-core-8.5.15.jar:8.5.15] at com.mooc.house.web.filter.LogFilter.doFilter(LogFilter.java:28) [classes/:?] at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:193) [tomcat-embed-core-8.5.15.jar:8.5.15] at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166) [tomcat-embed-core-8.5.15.jar:8.5.15] at org.springframework.boot.actuate.trace.WebRequestTraceFilter.doFilterInternal(WebRequestTraceFilter.java:105) [spring-boot-actuator-1.4.7.RELEASE.jar:1.4.7.RELEASE] at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:107) [spring-web-4.3.9.RELEASE.jar:4.3.9.RELEASE] at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:193) [tomcat-embed-core-8.5.15.jar:8.5.15] at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166) [tomcat-embed-core-8.5.15.jar:8.5.15] at org.springframework.web.filter.RequestContextFilter.doFilterInternal(RequestContextFilter.java:99) [spring-web-4.3.9.RELEASE.jar:4.3.9.RELEASE] at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:107) [spring-web-4.3.9.RELEASE.jar:4.3.9.RELEASE] at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:193) [tomcat-embed-core-8.5.15.jar:8.5.15] at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166) [tomcat-embed-core-8.5.15.jar:8.5.15] at org.springframework.web.filter.HttpPutFormContentFilter.doFilterInternal(HttpPutFormContentFilter.java:105) [spring-web-4.3.9.RELEASE.jar:4.3.9.RELEASE] at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:107) [spring-web-4.3.9.RELEASE.jar:4.3.9.RELEASE] at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:193) [tomcat-embed-core-8.5.15.jar:8.5.15] at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166) [tomcat-embed-core-8.5.15.jar:8.5.15] at org.springframework.web.filter.HiddenHttpMethodFilter.doFilterInternal(HiddenHttpMethodFilter.java:81) [spring-web-4.3.9.RELEASE.jar:4.3.9.RELEASE] at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:107) [spring-web-4.3.9.RELEASE.jar:4.3.9.RELEASE] at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:193) [tomcat-embed-core-8.5.15.jar:8.5.15] at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166) [tomcat-embed-core-8.5.15.jar:8.5.15] at org.springframework.web.filter.CharacterEncodingFilter.doFilterInternal(CharacterEncodingFilter.java:197) [spring-web-4.3.9.RELEASE.jar:4.3.9.RELEASE] at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:107) [spring-web-4.3.9.RELEASE.jar:4.3.9.RELEASE] at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:193) [tomcat-embed-core-8.5.15.jar:8.5.15] at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166) [tomcat-embed-core-8.5.15.jar:8.5.15] at org.springframework.boot.actuate.autoconfigure.MetricsFilter.doFilterInternal(MetricsFilter.java:106) [spring-boot-actuator-1.4.7.RELEASE.jar:1.4.7.RELEASE] at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:107) [spring-web-4.3.9.RELEASE.jar:4.3.9.RELEASE] at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:193) [tomcat-embed-core-8.5.15.jar:8.5.15] at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166) [tomcat-embed-core-8.5.15.jar:8.5.15] at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:198) [tomcat-embed-core-8.5.15.jar:8.5.15] at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:96) [tomcat-embed-core-8.5.15.jar:8.5.15] at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:478) [tomcat-embed-core-8.5.15.jar:8.5.15] at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:140) [tomcat-embed-core-8.5.15.jar:8.5.15] at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:80) [tomcat-embed-core-8.5.15.jar:8.5.15] at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:87) [tomcat-embed-core-8.5.15.jar:8.5.15] at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:342) [tomcat-embed-core-8.5.15.jar:8.5.15] at org.apache.coyote.http11.Http11Processor.service(Http11Processor.java:799) [tomcat-embed-core-8.5.15.jar:8.5.15] at org.apache.coyote.AbstractProcessorLight.process(AbstractProcessorLight.java:66) [tomcat-embed-core-8.5.15.jar:8.5.15] at org.apache.coyote.AbstractProtocol$ConnectionHandler.process(AbstractProtocol.java:861) [tomcat-embed-core-8.5.15.jar:8.5.15] at org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.doRun(NioEndpoint.java:1455) [tomcat-embed-core-8.5.15.jar:8.5.15] at org.apache.tomcat.util.net.SocketProcessorBase.run(SocketProcessorBase.java:49) [tomcat-embed-core-8.5.15.jar:8.5.15] at java.util.concurrent.ThreadPoolExecutor.runWorker(Unknown Source) [?:1.8.0_181] at java.util.concurrent.ThreadPoolExecutor$Worker.run(Unknown Source) [?:1.8.0_181] at org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread.java:61) [tomcat-embed-core-8.5.15.jar:8.5.15] at java.lang.Thread.run(Unknown Source) [?:1.8.0_181] 3. 修改用户状态public boolean enable(String key) { String email = registerCache.getIfPresent(key); if(StringUtils.isBlank(email)) { return false; } User updateUser = new User(); updateUser.setEmail(email); updateUser.setEnable(1); userMapper.update(updateUser); registerCache.invalidate(key); return true; } 4.缓存相关 private final Cache registerCache = CacheBuilder.newBuilder().maximumSize(100) .expireAfterAccess(15, TimeUnit.MINUTES) .removalListener(new RemovalListener() { @Override public void onRemoval(RemovalNotification notification) { userMapper.delete(notification.getValue()); } }).build();
0
1
0
浏览量112
劳资最帅

jieba分词结果不理想怎么办?

1.逆向搜狗旅游词库,构建属于自己的词库,根据词库分词。 2.根据GitHub中的开源的停用词词库,构建属于自己的停用词词库,去完成祛除停用词的操作。
0
0
0
浏览量0
劳资最帅

如何后台播放音乐?

如何后台播放音乐
0
1
0
浏览量152
劳资最帅

typescript类型的问题?

我想解决的是res.Code下面的红线问题 "image.png" (https://wmprod.oss-cn-shanghai.aliyuncs.com/c/user/20241012/91f3f4a393142e0c55529ce5a38d2bcd.png) 下面是loginApi接口的类型定义: export const loginApi = (data: UserType): Promise> => { return request.post({ url: '/BackLogin/Login', data }) } 其中UserType类型的定义: export type UserType = { userNo: string password: string role: string roleId: string permissions: string | string[] } IResponse类型的定义: declare interface IResponse { Code: string|int Data: T extends any ? T : T & any Msg:string|any } 为什么Promise的返回值Code,Data,Msg下面都带红线? "image.png" (https://wmprod.oss-cn-shanghai.aliyuncs.com/c/user/20241012/967d85981b2d8087840ffa8013f06bdc.png) 代码: const res = await loginApi(data).catch(e=>{ loading.value=false }) if (res.Code===0) { wsCache.set(appStore.getUserInfo, res.Data) // 是否使用动态路由 if (appStore.getDynamicRouter) { console.log("动态路由") } else { } }else{ ElMessage.error(res.Msg) }
0
1
0
浏览量153
劳资最帅

linux 排查网络问题,docker 容器跑的 http 服务可以访问,但是在宿主机运行的http无法从其他机器访问?

linux 排查网络问题,docker 容器跑的 http 服务可以访问,但是在宿主机运行的http无法从其他机器访问? ╰─➤ docker restart rabbitmq3-management 2 ↵ Error response from daemon: Cannot restart container rabbitmq3-management: driver failed programming external connectivity on endpoint rabbitmq3-management (f6bf8d5245c463e0ccdbfb5340e09d460dea3925124be09c92612a5ee5823c8e): (iptables failed: iptables --wait -t nat -A DOCKER -p tcp -d 0/0 --dport 15692 -j DNAT --to-destination 172.21.2.2:15692 ! -i br-ea23e34daef4: iptables: No chain/target/match by that name. (exit status 1)) 之前因为服务器的内存条损坏,然后强制跳过内存条自检,把服务器重新成功了,现在服务器就带病跑在,还没有新的内存条替换 if __name__ == "__main__": uvicorn.run( app='api:app', host="0.0.0.0", port=9600, workers=1, ) 但是服务器重启后发现了问题,我在该服务器,跑了一个 fastapi,发现在自己访问自己可以 ─➤ http -v http://192.168.38.223:9600 GET / HTTP/1.1 Accept: */* Accept-Encoding: gzip, deflate Connection: keep-alive Host: 192.168.38.223:9600 User-Agent: HTTPie/2.6.0 HTTP/1.1 200 OK content-length: 25 content-type: application/json date: Thu, 01 Feb 2024 06:56:05 GMT server: uvicorn { "message": "Hello World" } 但是从其他机器访问这个服务器的 fastapi 的 9600 就不行 ─➤ http -v http://192.168.38.223:9600 GET / HTTP/1.1 Accept: */* Accept-Encoding: gzip, deflate, br Connection: keep-alive Host: 192.168.38.223:9600 User-Agent: HTTPie/3.2.2 HTTP/1.1 503 Service Unavailable Connection: close Content-Length: 0 Proxy-Connection: close 但是其他机器访问这个服务的 docker 跑的 http 服务都是可以的 比如这个机器上用 docker 跑了一个 rabbitmq server,从其他机器访问这个 rabbitmq sever 的 15672 端口是可以的 ─➤ http -v http://192.168.38.223:15672 GET / HTTP/1.1 Accept: */* Accept-Encoding: gzip, deflate, br Connection: keep-alive Host: 192.168.38.223:15672 User-Agent: HTTPie/3.2.2 HTTP/1.1 200 OK Connection: keep-alive Content-Length: 3056 Content-Security-Policy: script-src 'self' 'unsafe-eval' 'unsafe-inline'; object-src 'self' Content-Type: text/html Date: Thu, 01 Feb 2024 06:57:12 GMT Etag: "3550788022" Keep-Alive: timeout=4 Last-Modified: Thu, 24 Aug 2023 17:56:19 GMT Proxy-Connection: keep-alive Server: Cowboy Vary: origin 使用 netstat 查看,192.168.38.223 机器的 9600 端口确实是被监听着 ╰─➤ netstat -tulnp 1 ↵ (Not all processes could be identified, non-owned process info will not be shown, you would have to be root to see it all.) Active Internet connections (only servers) Proto Recv-Q Send-Q Local Address Foreign Address State PID/Program name tcp 0 0 0.0.0.0:19530 0.0.0.0:* LISTEN - tcp 0 0 0.0.0.0:5601 0.0.0.0:* LISTEN - tcp 0 0 0.0.0.0:5432 0.0.0.0:* LISTEN - tcp 0 0 0.0.0.0:5672 0.0.0.0:* LISTEN - tcp 0 0 0.0.0.0:6379 0.0.0.0:* LISTEN - tcp 0 0 0.0.0.0:8000 0.0.0.0:* LISTEN - tcp 0 0 0.0.0.0:22 0.0.0.0:* LISTEN - tcp 0 0 0.0.0.0:2224 0.0.0.0:* LISTEN - tcp 0 0 0.0.0.0:3000 0.0.0.0:* LISTEN - tcp 0 0 0.0.0.0:3306 0.0.0.0:* LISTEN - tcp 0 0 0.0.0.0:15692 0.0.0.0:* LISTEN - tcp 0 0 0.0.0.0:15672 0.0.0.0:* LISTEN - tcp 0 0 0.0.0.0:8929 0.0.0.0:* LISTEN - tcp 0 0 0.0.0.0:9200 0.0.0.0:* LISTEN - tcp 0 0 0.0.0.0:9091 0.0.0.0:* LISTEN - tcp 0 0 0.0.0.0:9002 0.0.0.0:* LISTEN - tcp 0 0 0.0.0.0:9000 0.0.0.0:* LISTEN - tcp 0 0 0.0.0.0:9300 0.0.0.0:* LISTEN - tcp 0 0 0.0.0.0:9600 0.0.0.0:* LISTEN 1636021/python tcp 0 0 127.0.0.53:53 0.0.0.0:* LISTEN - tcp 0 0 0.0.0.0:36672 0.0.0.0:* LISTEN - tcp 0 0 127.0.0.1:44127 0.0.0.0:* LISTEN 1598742/node tcp 0 0 127.0.0.1:44359 0.0.0.0:* LISTEN 1598878/code-8b3775 tcp 0 0 127.0.0.1:41939 0.0.0.0:* LISTEN 1598538/node tcp6 0 0 :::19530 :::* LISTEN - tcp6 0 0 :::5601 :::* LISTEN - tcp6 0 0 :::5432 :::* LISTEN - tcp6 0 0 :::5672 :::* LISTEN - tcp6 0 0 :::6379 :::* LISTEN - tcp6 0 0 :::7891 :::* LISTEN 1646/clash tcp6 0 0 :::7890 :::* LISTEN 1646/clash tcp6 0 0 :::8000 :::* LISTEN - tcp6 0 0 :::22 :::* LISTEN - tcp6 0 0 :::2224 :::* LISTEN - tcp6 0 0 :::3306 :::* LISTEN - tcp6 0 0 :::15692 :::* LISTEN - tcp6 0 0 :::15672 :::* LISTEN - tcp6 0 0 :::8929 :::* LISTEN - tcp6 0 0 :::9200 :::* LISTEN - tcp6 0 0 :::9091 :::* LISTEN - tcp6 0 0 :::9090 :::* LISTEN 1646/clash tcp6 0 0 :::9002 :::* LISTEN - tcp6 0 0 :::9000 :::* LISTEN - tcp6 0 0 :::9300 :::* LISTEN - udp 0 0 127.0.0.53:53 0.0.0.0:* - udp6 0 0 :::7891 :::* 1646/clash 我的机器(192.168.38.223)网络如下: ─➤ ip --color a 1: lo: mtu 65536 qdisc noqueue state UNKNOWN group default qlen 1000 link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00 inet 127.0.0.1/8 scope host lo valid_lft forever preferred_lft forever inet6 ::1/128 scope host valid_lft forever preferred_lft forever 2: eno1: mtu 1500 qdisc mq state UP group default qlen 1000 link/ether 90:8d:6e:c2:5d:24 brd ff:ff:ff:ff:ff:ff altname enp24s0f0 inet 192.168.38.223/24 brd 192.168.38.255 scope global eno1 valid_lft forever preferred_lft forever inet6 fe80::928d:6eff:fec2:5d24/64 scope link valid_lft forever preferred_lft forever 3: eno2: mtu 1500 qdisc mq state DOWN group default qlen 1000 link/ether 90:8d:6e:c2:5d:25 brd ff:ff:ff:ff:ff:ff altname enp24s0f1 4: eno3: mtu 1500 qdisc mq state DOWN group default qlen 1000 link/ether 90:8d:6e:c2:5d:26 brd ff:ff:ff:ff:ff:ff altname enp25s0f0 5: eno4: mtu 1500 qdisc mq state DOWN group default qlen 1000 link/ether 90:8d:6e:c2:5d:27 brd ff:ff:ff:ff:ff:ff altname enp25s0f1 6: br-7abdd021226c: mtu 1500 qdisc noqueue state DOWN group default link/ether 02:42:20:78:a1:26 brd ff:ff:ff:ff:ff:ff inet 172.21.7.1/24 brd 172.21.7.255 scope global br-7abdd021226c valid_lft forever preferred_lft forever 8: br-fae6ff4cbfe5: mtu 1500 qdisc noqueue state UP group default link/ether 02:42:a3:e3:7b:47 brd ff:ff:ff:ff:ff:ff inet 172.21.8.1/24 brd 172.21.8.255 scope global br-fae6ff4cbfe5 valid_lft forever preferred_lft forever inet6 fe80::42:a3ff:fee3:7b47/64 scope link valid_lft forever preferred_lft forever 9: br-1ad62c94cb59: mtu 1500 qdisc noqueue state DOWN group default link/ether 02:42:e0:b5:64:9f brd ff:ff:ff:ff:ff:ff inet 172.21.4.1/24 brd 172.21.4.255 scope global br-1ad62c94cb59 valid_lft forever preferred_lft forever 10: br-72097f53c6c8: mtu 1500 qdisc noqueue state UP group default link/ether 02:42:2d:88:79:b3 brd ff:ff:ff:ff:ff:ff inet 172.21.5.1/24 brd 172.21.5.255 scope global br-72097f53c6c8 valid_lft forever preferred_lft forever inet6 fe80::42:2dff:fe88:79b3/64 scope link valid_lft forever preferred_lft forever 11: br-2c578316f047: mtu 1500 qdisc noqueue state DOWN group default link/ether 02:42:f5:72:f5:5c brd ff:ff:ff:ff:ff:ff inet 172.21.1.1/24 brd 172.21.1.255 scope global br-2c578316f047 valid_lft forever preferred_lft forever 12: br-33e0a46249f7: mtu 1500 qdisc noqueue state DOWN group default link/ether 02:42:b6:a2:c1:e3 brd ff:ff:ff:ff:ff:ff inet 192.168.49.1/24 brd 192.168.49.255 scope global br-33e0a46249f7 valid_lft forever preferred_lft forever 13: br-7c40d6bf640c: mtu 1500 qdisc noqueue state UP group default link/ether 02:42:e7:a5:67:9c brd ff:ff:ff:ff:ff:ff inet 172.21.3.1/24 brd 172.21.3.255 scope global br-7c40d6bf640c valid_lft forever preferred_lft forever inet6 fe80::42:e7ff:fea5:679c/64 scope link valid_lft forever preferred_lft forever 14: br-ae3a1dd6e320: mtu 1500 qdisc noqueue state UP group default link/ether 02:42:41:e9:55:06 brd ff:ff:ff:ff:ff:ff inet 172.21.0.1/24 brd 172.21.0.255 scope global br-ae3a1dd6e320 valid_lft forever preferred_lft forever inet6 fe80::42:41ff:fee9:5506/64 scope link valid_lft forever preferred_lft forever 15: br-ea23e34daef4: mtu 1500 qdisc noqueue state UP group default link/ether 02:42:77:fc:27:bf brd ff:ff:ff:ff:ff:ff inet 172.21.2.1/24 brd 172.21.2.255 scope global br-ea23e34daef4 valid_lft forever preferred_lft forever inet6 fe80::42:77ff:fefc:27bf/64 scope link valid_lft forever preferred_lft forever 16: br-eb248bb5b3fa: mtu 1500 qdisc noqueue state UP group default link/ether 02:42:49:87:4d:ff brd ff:ff:ff:ff:ff:ff inet 172.21.15.1/24 brd 172.21.15.255 scope global br-eb248bb5b3fa valid_lft forever preferred_lft forever inet6 fe80::42:49ff:fe87:4dff/64 scope link valid_lft forever preferred_lft forever 17: br-0cbe1b0ddf78: mtu 1500 qdisc noqueue state UP group default link/ether 02:42:fc:d6:05:b2 brd ff:ff:ff:ff:ff:ff inet 172.21.9.1/24 brd 172.21.9.255 scope global br-0cbe1b0ddf78 valid_lft forever preferred_lft forever inet6 fe80::42:fcff:fed6:5b2/64 scope link valid_lft forever preferred_lft forever 18: br-298fd4684d8e: mtu 1500 qdisc noqueue state DOWN group default link/ether 02:42:7e:14:43:4b brd ff:ff:ff:ff:ff:ff inet 172.21.17.1/24 brd 172.21.17.255 scope global br-298fd4684d8e valid_lft forever preferred_lft forever 19: br-3fa489a3f1b3: mtu 1500 qdisc noqueue state DOWN group default link/ether 02:42:37:b1:67:2f brd ff:ff:ff:ff:ff:ff inet 172.21.10.1/24 brd 172.21.10.255 scope global br-3fa489a3f1b3 valid_lft forever preferred_lft forever 20: br-bff545d104b6: mtu 1500 qdisc noqueue state UP group default link/ether 02:42:ee:12:b1:2e brd ff:ff:ff:ff:ff:ff inet 172.21.19.1/24 brd 172.21.19.255 scope global br-bff545d104b6 valid_lft forever preferred_lft forever inet6 fe80::42:eeff:fe12:b12e/64 scope link valid_lft forever preferred_lft forever 21: docker0: mtu 1500 qdisc noqueue state DOWN group default link/ether 02:42:16:5c:70:8e brd ff:ff:ff:ff:ff:ff inet 172.17.0.1/16 brd 172.17.255.255 scope global docker0 valid_lft forever preferred_lft forever 23: vethc4971ff@if22: mtu 1500 qdisc noqueue master br-0cbe1b0ddf78 state UP group default link/ether 6e:1b:be:ce:63:4f brd ff:ff:ff:ff:ff:ff link-netnsid 0 inet6 fe80::6c1b:beff:fece:634f/64 scope link valid_lft forever preferred_lft forever 25: vethbb38cd9@if24: mtu 1500 qdisc noqueue master br-72097f53c6c8 state UP group default link/ether 46:af:51:eb:82:5a brd ff:ff:ff:ff:ff:ff link-netnsid 5 inet6 fe80::44af:51ff:feeb:825a/64 scope link valid_lft forever preferred_lft forever 27: vetha994484@if26: mtu 1500 qdisc noqueue master br-ea23e34daef4 state UP group default link/ether 2e:62:df:af:e7:77 brd ff:ff:ff:ff:ff:ff link-netnsid 10 inet6 fe80::2c62:dfff:feaf:e777/64 scope link valid_lft forever preferred_lft forever 29: vetha936228@if28: mtu 1500 qdisc noqueue master br-fae6ff4cbfe5 state UP group default link/ether ea:9a:37:c2:7a:f9 brd ff:ff:ff:ff:ff:ff link-netnsid 9 inet6 fe80::e89a:37ff:fec2:7af9/64 scope link valid_lft forever preferred_lft forever 31: veth903d616@if30: mtu 1500 qdisc noqueue master br-7c40d6bf640c state UP group default link/ether fe:4f:15:d0:24:bb brd ff:ff:ff:ff:ff:ff link-netnsid 3 inet6 fe80::fc4f:15ff:fed0:24bb/64 scope link valid_lft forever preferred_lft forever 33: veth0fb5941@if32: mtu 1500 qdisc noqueue master br-ae3a1dd6e320 state UP group default link/ether da:81:51:b4:6e:ff brd ff:ff:ff:ff:ff:ff link-netnsid 4 inet6 fe80::d881:51ff:feb4:6eff/64 scope link valid_lft forever preferred_lft forever 35: veth03a943c@if34: mtu 1500 qdisc noqueue master br-bff545d104b6 state UP group default link/ether d6:0c:97:ce:c1:73 brd ff:ff:ff:ff:ff:ff link-netnsid 7 inet6 fe80::d40c:97ff:fece:c173/64 scope link valid_lft forever preferred_lft forever 39: veth3051cb6@if38: mtu 1500 qdisc noqueue master br-0cbe1b0ddf78 state UP group default link/ether a2:31:f3:14:e4:42 brd ff:ff:ff:ff:ff:ff link-netnsid 11 inet6 fe80::a031:f3ff:fe14:e442/64 scope link valid_lft forever preferred_lft forever 41: veth90b7282@if40: mtu 1500 qdisc noqueue master br-0cbe1b0ddf78 state UP group default link/ether 5e:b6:3c:e7:8e:52 brd ff:ff:ff:ff:ff:ff link-netnsid 1 inet6 fe80::5cb6:3cff:fee7:8e52/64 scope link valid_lft forever preferred_lft forever 43: vethb1255cd@if42: mtu 1500 qdisc noqueue master br-fae6ff4cbfe5 state UP group default link/ether 66:81:8d:a6:b2:54 brd ff:ff:ff:ff:ff:ff link-netnsid 8 inet6 fe80::6481:8dff:fea6:b254/64 scope link valid_lft forever preferred_lft forever 45: veth08c2693@if44: mtu 1500 qdisc noqueue master br-0cbe1b0ddf78 state UP group default link/ether c6:a5:cb:0e:0f:2a brd ff:ff:ff:ff:ff:ff link-netnsid 6 inet6 fe80::c4a5:cbff:fe0e:f2a/64 scope link valid_lft forever preferred_lft forever 6217: vethe2ecf76@if6216: mtu 1500 qdisc noqueue master br-eb248bb5b3fa state UP group default link/ether 16:6f:0a:c6:7c:f2 brd ff:ff:ff:ff:ff:ff link-netnsid 2 inet6 fe80::146f:aff:fec6:7cf2/64 scope link valid_lft forever preferred_lft forever 这该怎么办呢?有什么排查思路或者方向吗? 之前都是可以访问的,就是内存出问题重启后出现了这个问题。 不仅仅是 9600端口,我把 fastapi 改成其他端口都是不通的。甚至我把 docker 跑的 rabbitmq 关掉,释放 15672 端口,然后把 fastapi 绑定到 15672 端口,这是从其他电脑也无法访问 15672 了。(但是 docker 跑的 rabbitmq 的 15672 是可以被其他机器访问的) *** 使用 nc 命令在我的 mac 上判断服务器(192.168.38.223)端口是否联通,会返回连接拒绝 ╰─➤ nc -zv 192.168.38.223 9600 130 ↵ nc: connectx to 192.168.38.223 port 9600 (tcp) failed: Connection refused 但是使用 httpie 命令,返回的还是 503 ╰─➤ http -v http://192.168.38.223:9600 GET / HTTP/1.1 Accept: */* Accept-Encoding: gzip, deflate, br Connection: keep-alive Host: 192.168.38.223:9600 User-Agent: HTTPie/3.2.2 HTTP/1.1 503 Service Unavailable Connection: close Content-Length: 0 Proxy-Connection: close 但是在服务器自己访问自己都是 ok 的 ╭─pon@T4GPU ~ ╰─➤ nc -zv 192.168.38.223 9600 Connection to 192.168.38.223 9600 port [tcp/*] succeeded! ╭─pon@T4GPU ~ ╰─➤ http -v http://192.168.38.223:9600 GET / HTTP/1.1 Accept: */* Accept-Encoding: gzip, deflate Connection: keep-alive Host: 192.168.38.223:9600 User-Agent: HTTPie/2.6.0 HTTP/1.1 200 OK content-length: 25 content-type: application/json date: Fri, 02 Feb 2024 01:39:17 GMT server: uvicorn { "message": "Hello World" } *** 防火墙关闭了还是不行 ╭─pon@T4GPU ~ ╰─➤ sudo iptables -P INPUT ACCEPT sudo iptables -P FORWARD ACCEPT sudo iptables -P OUTPUT ACCEPT sudo iptables -F ╭─pon@T4GPU ~ ╰─➤ exit Connection to 192.168.38.223 closed. ╭─ponponon@MBP13ARM ~ ╰─➤ nc -zv 192.168.38.223 9600 nc: connectx to 192.168.38.223 port 9600 (tcp) failed: Connection refused *** 我同样在 mac(192.168.35.150) 上去访问另一台服务器(192.168.38.191)的 fastapi,是可以的 ╭─ponponon@MBP13ARM ~ ╰─➤ nc -zv 192.168.38.191 9901 1 ↵ Connection to 192.168.38.191 port 9901 [tcp/*] succeeded! ╭─ponponon@MBP13ARM ~ ╰─➤ http -v http://192.168.38.191:9901 GET / HTTP/1.1 Accept: */* Accept-Encoding: gzip, deflate, br Connection: keep-alive Host: 192.168.38.191:9901 User-Agent: HTTPie/3.2.2 HTTP/1.1 200 OK Connection: keep-alive Content-Length: 25 Content-Type: application/json Date: Fri, 02 Feb 2024 01:50:07 GMT Keep-Alive: timeout=4 Proxy-Connection: keep-alive Server: uvicorn { "message": "hello world" } 所以应该不是外部网络的问题 *** 之前都是好好的 现在是下面这样 "未命名文件(81).png" (https://wmprod.oss-cn-shanghai.aliyuncs.com/c/user/20241011/c8d16aba9bc0a928705fdb3c1f14d11b.png) *** 更新 192.168.38.223 机器的路由表信息 (vtboss-plugin-3DGTRD6U) ╭─pon@T4GPU ~/code/work/vobile/vt/vtboss-plugin ‹master*› ╰─➤ route -n Kernel IP routing table Destination Gateway Genmask Flags Metric Ref Use Iface 0.0.0.0 192.168.38.1 0.0.0.0 UG 0 0 0 eno1 172.17.0.0 0.0.0.0 255.255.0.0 U 0 0 0 docker0 172.21.0.0 0.0.0.0 255.255.255.0 U 0 0 0 br-ae3a1dd6e320 172.21.1.0 0.0.0.0 255.255.255.0 U 0 0 0 br-2c578316f047 172.21.2.0 0.0.0.0 255.255.255.0 U 0 0 0 br-ea23e34daef4 172.21.3.0 0.0.0.0 255.255.255.0 U 0 0 0 br-7c40d6bf640c 172.21.4.0 0.0.0.0 255.255.255.0 U 0 0 0 br-1ad62c94cb59 172.21.5.0 0.0.0.0 255.255.255.0 U 0 0 0 br-72097f53c6c8 172.21.7.0 0.0.0.0 255.255.255.0 U 0 0 0 br-7abdd021226c 172.21.8.0 0.0.0.0 255.255.255.0 U 0 0 0 br-fae6ff4cbfe5 172.21.9.0 0.0.0.0 255.255.255.0 U 0 0 0 br-0cbe1b0ddf78 172.21.10.0 0.0.0.0 255.255.255.0 U 0 0 0 br-3fa489a3f1b3 172.21.15.0 0.0.0.0 255.255.255.0 U 0 0 0 br-eb248bb5b3fa 172.21.17.0 0.0.0.0 255.255.255.0 U 0 0 0 br-298fd4684d8e 172.21.19.0 0.0.0.0 255.255.255.0 U 0 0 0 br-bff545d104b6 192.168.38.0 0.0.0.0 255.255.255.0 U 0 0 0 eno1 192.168.49.0 0.0.0.0 255.255.255.0 U 0 0 0 br-33e0a46249f7 (vtboss-plugin-3DGTRD6U) ╭─pon@T4GPU ~/code/work/vobile/vt/vtboss-plugin ‹master*› ╰─➤ netstat -r Kernel IP routing table Destination Gateway Genmask Flags MSS Window irtt Iface default localhost 0.0.0.0 UG 0 0 0 eno1 172.17.0.0 0.0.0.0 255.255.0.0 U 0 0 0 docker0 172.21.0.0 0.0.0.0 255.255.255.0 U 0 0 0 br-ae3a1dd6e320 172.21.1.0 0.0.0.0 255.255.255.0 U 0 0 0 br-2c578316f047 172.21.2.0 0.0.0.0 255.255.255.0 U 0 0 0 br-ea23e34daef4 172.21.3.0 0.0.0.0 255.255.255.0 U 0 0 0 br-7c40d6bf640c 172.21.4.0 0.0.0.0 255.255.255.0 U 0 0 0 br-1ad62c94cb59 172.21.5.0 0.0.0.0 255.255.255.0 U 0 0 0 br-72097f53c6c8 172.21.7.0 0.0.0.0 255.255.255.0 U 0 0 0 br-7abdd021226c 172.21.8.0 0.0.0.0 255.255.255.0 U 0 0 0 br-fae6ff4cbfe5 172.21.9.0 0.0.0.0 255.255.255.0 U 0 0 0 br-0cbe1b0ddf78 172.21.10.0 0.0.0.0 255.255.255.0 U 0 0 0 br-3fa489a3f1b3 172.21.15.0 0.0.0.0 255.255.255.0 U 0 0 0 br-eb248bb5b3fa 172.21.17.0 0.0.0.0 255.255.255.0 U 0 0 0 br-298fd4684d8e 172.21.19.0 0.0.0.0 255.255.255.0 U 0 0 0 br-bff545d104b6 192.168.38.0 0.0.0.0 255.255.255.0 U 0 0 0 eno1 192.168.49.0 0.0.0.0 255.255.255.0 U 0 0 0 br-33e0a46249f7 (vtboss-plugin-3DGTRD6U) ╭─pon@T4GPU ~/code/work/vobile/vt/vtboss-plugin ‹master*› ╰─➤ ip -s route show default via 192.168.38.1 dev eno1 proto static 172.17.0.0/16 dev docker0 proto kernel scope link src 172.17.0.1 linkdown 172.21.0.0/24 dev br-ae3a1dd6e320 proto kernel scope link src 172.21.0.1 172.21.1.0/24 dev br-2c578316f047 proto kernel scope link src 172.21.1.1 linkdown 172.21.2.0/24 dev br-ea23e34daef4 proto kernel scope link src 172.21.2.1 172.21.3.0/24 dev br-7c40d6bf640c proto kernel scope link src 172.21.3.1 172.21.4.0/24 dev br-1ad62c94cb59 proto kernel scope link src 172.21.4.1 linkdown 172.21.5.0/24 dev br-72097f53c6c8 proto kernel scope link src 172.21.5.1 172.21.7.0/24 dev br-7abdd021226c proto kernel scope link src 172.21.7.1 linkdown 172.21.8.0/24 dev br-fae6ff4cbfe5 proto kernel scope link src 172.21.8.1 172.21.9.0/24 dev br-0cbe1b0ddf78 proto kernel scope link src 172.21.9.1 172.21.10.0/24 dev br-3fa489a3f1b3 proto kernel scope link src 172.21.10.1 linkdown 172.21.15.0/24 dev br-eb248bb5b3fa proto kernel scope link src 172.21.15.1 172.21.17.0/24 dev br-298fd4684d8e proto kernel scope link src 172.21.17.1 linkdown 172.21.19.0/24 dev br-bff545d104b6 proto kernel scope link src 172.21.19.1 192.168.38.0/24 dev eno1 proto kernel scope link src 192.168.38.223 192.168.49.0/24 dev br-33e0a46249f7 proto kernel scope link src 192.168.49.1 linkdown 然后我在问题机器上抓包 (vtboss-plugin-3DGTRD6U) ╭─pon@T4GPU ~/code/work/vobile/vt/vtboss-plugin ‹master*› ╰─➤ sudo tcpdump -i eno1 port 9600 -n -vvv -w test.cap 130 ↵ tcpdump: listening on eno1, link-type EN10MB (Ethernet), snapshot length 262144 bytes 然后在 mac 上打开服务器抓包的 cap 文件,结果如下 "图片.png" (https://wmprod.oss-cn-shanghai.aliyuncs.com/c/user/20241011/bb6d1f15737d08b92c5f8dc6f1eae88e.png) *** 我直接用 mac 上的 wireshark 抓包了试了一下,变成下面这样了 ╰─➤ http -v http://192.168.38.223:9600 GET / HTTP/1.1 Accept: */* Accept-Encoding: gzip, deflate, br Connection: keep-alive Host: 192.168.38.223:9600 User-Agent: HTTPie/3.2.2 HTTP/1.1 503 Service Unavailable Connection: close Content-Length: 0 Proxy-Connection: close "图片.png" (https://wmprod.oss-cn-shanghai.aliyuncs.com/c/user/20241011/9c7d6f75bc37041d91ea05f77b51445e.png) *** 监听的端口没有问题 ╰─➤ netstat -tulnp | grep 2320406 (Not all processes could be identified, non-owned process info will not be shown, you would have to be root to see it all.) tcp 0 0 0.0.0.0:9600 0.0.0.0:* LISTEN 2320406/python *** 更新 ifconfig eno1 的结果 ─➤ ifconfig eno1 eno1: flags=4163 mtu 1500 inet 192.168.38.223 netmask 255.255.255.0 broadcast 192.168.38.255 inet6 fe80::928d:6eff:fec2:5d24 prefixlen 64 scopeid 0x20 ether 90:8d:6e:c2:5d:24 txqueuelen 1000 (Ethernet) RX packets 1912389 bytes 541910038 (541.9 MB) RX errors 0 dropped 48496 overruns 0 frame 0 TX packets 1097342 bytes 510909874 (510.9 MB) TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0 device interrupt 35 *** 更新 ethtool -S eno1 的结果 ╰─➤ ethtool -S eno1 NIC statistics: rx_octets: 541948234 rx_fragments: 0 rx_ucast_packets: 995624 rx_mcast_packets: 677808 rx_bcast_packets: 239396 rx_fcs_errors: 0 rx_align_errors: 0 rx_xon_pause_rcvd: 0 rx_xoff_pause_rcvd: 0 rx_mac_ctrl_rcvd: 0 rx_xoff_entered: 0 rx_frame_too_long_errors: 0 rx_jabbers: 0 rx_undersize_packets: 0 rx_in_length_errors: 0 rx_out_length_errors: 0 rx_64_or_less_octet_packets: 0 rx_65_to_127_octet_packets: 0 rx_128_to_255_octet_packets: 0 rx_256_to_511_octet_packets: 0 rx_512_to_1023_octet_packets: 0 rx_1024_to_1522_octet_packets: 0 rx_1523_to_2047_octet_packets: 0 rx_2048_to_4095_octet_packets: 0 rx_4096_to_8191_octet_packets: 0 rx_8192_to_9022_octet_packets: 0 tx_octets: 511129734 tx_collisions: 0 tx_xon_sent: 0 tx_xoff_sent: 0 tx_flow_control: 0 tx_mac_errors: 0 tx_single_collisions: 0 tx_mult_collisions: 0 tx_deferred: 0 tx_excessive_collisions: 0 tx_late_collisions: 0 tx_collide_2times: 0 tx_collide_3times: 0 tx_collide_4times: 0 tx_collide_5times: 0 tx_collide_6times: 0 tx_collide_7times: 0 tx_collide_8times: 0 tx_collide_9times: 0 tx_collide_10times: 0 tx_collide_11times: 0 tx_collide_12times: 0 tx_collide_13times: 0 tx_collide_14times: 0 tx_collide_15times: 0 tx_ucast_packets: 1097937 tx_mcast_packets: 83 tx_bcast_packets: 9 tx_carrier_sense_errors: 0 tx_discards: 0 tx_errors: 0 dma_writeq_full: 0 dma_write_prioq_full: 0 rxbds_empty: 0 rx_discards: 0 rx_errors: 0 rx_threshold_hit: 0 dma_readq_full: 0 dma_read_prioq_full: 0 tx_comp_queue_full: 0 ring_set_send_prod_index: 0 ring_status_update: 0 nic_irqs: 0 nic_avoided_irqs: 0 nic_tx_threshold_hit: 0 mbuf_lwm_thresh_hit: 0 *** 这是我的 cpu 信息 ─➤ lscpu Architecture: x86_64 CPU op-mode(s): 32-bit, 64-bit Address sizes: 46 bits physical, 48 bits virtual Byte Order: Little Endian CPU(s): 32 On-line CPU(s) list: 0-31 Vendor ID: GenuineIntel Model name: Intel(R) Xeon(R) Gold 5218 CPU @ 2.30GHz CPU family: 6 Model: 85 Thread(s) per core: 1 Core(s) per socket: 16 Socket(s): 2 Stepping: 7 CPU max MHz: 3900.0000 CPU min MHz: 1000.0000 BogoMIPS: 4600.00 Flags: fpu vme de pse tsc msr pae mce cx8 apic sep mtrr pge mca cmov pat pse36 clflush dts acpi mmx fxsr sse sse2 ss ht tm pbe syscall nx pdpe1gb rdtscp lm constant_tsc art arch_perfmon pebs bts rep_good nopl xtopology nonstop_tsc cpuid aperfmperf pni pclmulqdq dtes64 monitor ds_cpl vmx smx est tm2 ssse3 sdbg fma cx16 xtpr pdcm pcid dca sse4_1 sse4_2 x2apic movbe popcnt tsc_deadline_timer aes xsave avx f16c rdrand lahf_lm abm 3dnowprefetch cpuid_fault epb cat_l3 cdp_l3 invpcid_single intel_ppin ssbd mba ibrs ibpb stibp ibrs_enhanced tpr_shad ow vnmi flexpriority ept vpid ept_ad fsgsbase tsc_adjust bmi1 avx2 smep bmi2 erms invpcid cqm mpx rdt_a avx512f avx512dq rdseed adx smap clflushopt clwb intel_pt avx512cd avx512bw avx512vl xsaveopt xsavec xgetbv1 xsaves cqm_llc cqm_occup_llc cqm_mbm_total cqm_mbm_local dtherm ida arat pln pts hwp hwp_act_window hwp_epp hwp_pkg_req pku ospke avx512_vnni md_clear flush_l1d arch_capabilities Virtualization features: Virtualization: VT-x Caches (sum of all): L1d: 1 MiB (32 instances) L1i: 1 MiB (32 instances) L2: 32 MiB (32 instances) L3: 44 MiB (2 instances) NUMA: NUMA node(s): 2 NUMA node0 CPU(s): 0,2,4,6,8,10,12,14,16,18,20,22,24,26,28,30 NUMA node1 CPU(s): 1,3,5,7,9,11,13,15,17,19,21,23,25,27,29,31 Vulnerabilities: Gather data sampling: Mitigation; Microcode Itlb multihit: KVM: Mitigation: VMX disabled L1tf: Not affected Mds: Not affected Meltdown: Not affected Mmio stale data: Mitigation; Clear CPU buffers; SMT disabled Retbleed: Mitigation; Enhanced IBRS Spec rstack overflow: Not affected Spec store bypass: Mitigation; Speculative Store Bypass disabled via prctl and seccomp Spectre v1: Mitigation; usercopy/swapgs barriers and __user pointer sanitization Spectre v2: Mitigation; Enhanced IBRS, IBPB conditional, RSB filling, PBRSB-eIBRS SW sequence Srbds: Not affected Tsx async abort: Mitigation; TSX disabled 内存应该是够的, 有 100多 GB 可用 (poster_keyword_search-vs4TvrqN) ╭─pon@T4GPU ~/code/work/vobile/vt/poster_keyword_search ‹master› ╰─➤ free -h 2 ↵ total used free shared buff/cache available Mem: 125Gi 17Gi 102Gi 130Mi 5.9Gi 107Gi Swap: 8.0Gi 0B 8.0Gi
0
1
0
浏览量140
劳资最帅

怎么查找一个已安装软件中不用的文件删除掉?

"https://www.diskanalyzer.com/" (https://link.segmentfault.com/?enc=9XwNm%2FeZ8vUs2wJqVNw5MA%3D%3D.rdEpQ%2B4SxA3hx06nNtvR6x%2BKE%2BGPeo%2FMs126NP%2BL%2Bq8%3D) 试试这个,17G如果集中在几个文件夹里,应该很容易就扫描出来。 同时用everything扫描软件名,基本上就都能找出来了。 (可能缓存目录:AppDate下面也有不少)
0
0
0
浏览量0
劳资最帅

表格经过筛选后跳转详情页,详情页返回列表页之后,如何做到列表页还保持原来的状态?

最简单的方案,你可以把筛选后的条件实时存储在localstorage,等回来就直接读localstorage就行了
0
0
0
浏览量0
劳资最帅

vu3项目实现路由跳转到新页面,返回旧页面,保留跳转之前的旧页面数据?

两个思路供参考: 1. 如果是跳转到新页面再跳转回来需要弹窗,那就在跳转时带个参数过去,回来把这个参数也带回来,就能区分是从别的页面过来的,还是这个选择页面过来的了,如果弹窗中有表单,表单数据在跳转出去时存vuex或者pinia 2. 上面的方法有点麻烦,更简单的办法是把跳转的新页面直接做成全屏弹窗,选了关掉就行,不影响你下面的页面
0
0
0
浏览量0
劳资最帅

命令替换得到$((2+3))为什么没有继续扩展?

"bash" (https://link.segmentfault.com/?enc=IgdoFyLerm89kJJzhMgqlA%3D%3D.qd%2B4RFiYGeETDk7SxCXS4wmUCmmVzts1tqkMTvZv3tM%3D) «The order of expansions is: brace expansion; tilde expansion, parameter and variable expansion, arithmetic expansion, and command substitution (done in a left-to-right fashion); word splitting; and pathname expansion.» arithmetic expansion 在 command substitution 之前。
0
0
0
浏览量0
劳资最帅

解决表格单元格选中时合并单元格样式问题?

"https://www.cnblogs.com/ArtofDesign/p/10081621.html" (https://link.segmentfault.com/?enc=m29Q3dxJ78LDO3YomzxYCw%3D%3D.pLgA5%2Bpze%2BRm9OXAX3XKoCciOXAG2PLHLFHIaEr7QBcyJu46pPy75crBAP%2FFCYkNpFG5SWs%2BKGNIn%2F0TYeg9zw%3D%3D) 已接入实现 "image.png" (https://wmprod.oss-cn-shanghai.aliyuncs.com/c/user/20241008/dac5071080dc1f1faa6753b4bd4e34d8.png) "image.png" (https://wmprod.oss-cn-shanghai.aliyuncs.com/c/user/20241008/fe3e0b48d4856dd3de9423253d55ccc3.png) "image.png" (https://wmprod.oss-cn-shanghai.aliyuncs.com/c/user/20241008/12fca1f4180ce1ad57db1aa091d3de2b.png) "image.png" (https://wmprod.oss-cn-shanghai.aliyuncs.com/c/user/20241008/7685521cbf0c04d73b984d59b86e51dc.png)
0
0
0
浏览量0
劳资最帅

ECharts 点击图表时怎么复制值?

echarts 5.5.0,我想当鼠标在图标在单击或双击时能复制x轴上的值。 "image.png" (https://wmprod.oss-cn-shanghai.aliyuncs.com/c/user/20241007/3c0751b7d05a6d0da3046829bd71d58f.png) 如图当点击红色位置的时候,我想将左侧的"281.11"数值写入粘贴板。 这是我的代码 var chartDom = document.getElementById('main'); var myChart = echarts.init(chartDom); let option = { tooltip: { axisPointer: { type: 'cross' }, }, xAxis: { type: 'category', data: ['Mon', 'Tue', 'Wed', 'Thu', 'Fri', 'Sat', 'Sun'] }, yAxis: { type: 'value' }, series: [ { data: [150, 230, 224, 218, 135, 147, 260], type: 'line' } ] }; myChart.setOption(option); // myChart.on('mousemove', 'tooltip.axisPointer', e => { // console.log(e); // }) 请帮帮我,谢谢。 搜索相关问题,未找到答案
0
1
0
浏览量156
劳资最帅

WebSocket在医学领域实时数据获取与波形图绘制方案?

window.onload = function () { var dps = []; // dataPoints var chart = new CanvasJS.Chart('chartContainer', { title: { text: 'Live ECG Data', }, data: [ { type: 'line', dataPoints: dps, }, ], }); var xVal = 0; var yVal = 100; var updateInterval = 1000; // 更新间隔,单位毫秒 var dataLength = 20; // 一次显示的数据点数量 var updateChart = function (count) { count = count || 1; for (var j = 0; j dataLength) { dps.shift(); } chart.render(); }; updateChart(dataLength); // 初始化图表 setInterval(function () { updateChart(); }, updateInterval); // 定时更新图表 }; "image.png" (https://wmprod.oss-cn-shanghai.aliyuncs.com/c/user/20241005/458a31c7c6c35e714cc5ffac62ee05da.png) "image.png" (https://wmprod.oss-cn-shanghai.aliyuncs.com/c/user/20241005/f1a5040893645154362c12a68e4bd28c.png)
0
0
0
浏览量0
劳资最帅

如何在Idea中指定默认显示的SpringBoot项目运行配置列表(Run/debug configurations)?

问题描述 比如我第一次拉取"pig仓库" (https://link.segmentfault.com/?enc=sRB%2BcH4Y63q3keBWHFizGw%3D%3D.2aaHZZSrMPM%2FCwiNo%2FYBOK3HJxGpeyfG%2FmWDMyaZnvJeYoO8JZFmdy%2Bm5YfBUny1)的代码,此时运行配置列表是有几个已经定义好的服务启动配置的,这是怎么做到的呢? " title=" (https://wmprod.oss-cn-shanghai.aliyuncs.com/c/user/20241002/4aa4f2e9c73439a57190436162c90661.png) 现在我想加一个"PigCodeGenApplication"代码生成的配置启动类,在别人拉取git代码的时候也能显示出来,该在哪里配置? 我目前只在.idea本地目录下,发现workspace.xml文件有这么一些配置。
0
1
0
浏览量159
劳资最帅

Autohotkey 如何实现将win+i 映射为 win+up 实现 上贴靠功能?

Win 11 上试了一下,是可以的,也没见多出来 Ctrl "image.png" (https://wmprod.oss-cn-shanghai.aliyuncs.com/c/user/20241001/b2542508c1406db6a14ad98d1ece2d94.png) * Windows 11 版本 22H2 (OS 内部版本 22621.3447) 如果实在不行的话,可以试试用 PowerToys 里面的键盘映射功能。 "image.png" (https://wmprod.oss-cn-shanghai.aliyuncs.com/c/user/20241001/e3481c2fced0a2453fd63f6e1b2b7611.png)
0
0
0
浏览量0
劳资最帅

如何解决绑定子目录后跳转到主站的问题?

开启绑定子目录后跳转到主站,也就是服务器IP地址。 开启绑定子目录后跳转到主站,也就是服务器IP地址。
0
1
0
浏览量159
劳资最帅

import引入本地js文件打包到线上不起作用?

import引入本地js文件打包到线上不起作用 https://wmprod.oss-cn-shanghai.aliyuncs.com/c/user/20240929/65b126d6a0da8f7c4acfb7a32d3fe26a.png 本地运行是好的 https://wmprod.oss-cn-shanghai.aliyuncs.com/c/user/20240929/54a77b8d053f6921e250c03cff8d6209.png 打包到线上就变成这样了 https://wmprod.oss-cn-shanghai.aliyuncs.com/c/user/20240929/44a5f22ddd3aedd8a43b88c90f41d28f.png 在本地注释import引入那行代码就是线上没生效这样
0
1
0
浏览量142
劳资最帅

vite分包,如何控制css文件的加载顺序?

分包不影响引入引入顺序的吧,你看看你 index.html 引入 css 的顺序,肯定是后面的覆盖前面的
0
0
0
浏览量0
劳资最帅

get请求没有跨域问题?

背景: 项目中,原先服务端"Access-Control-Allow-Origin"设置的值为"*",前端请求访问正常; 后来由于公司安全限制,"*"更改为一系列的白名单列表(域名列表),本地调试时由于诸如"http://localhost:8090"的域名不在白名单之内,所以前端接口请求会报错。 报错详情如下: status code: 403 message: invalid corse 说明有跨域问题了,请求不成功。 解决方案: 服务端在之前的白名单列表"Access-Control-Allow-Origin"中加上了"http://localhost:8090",所有访问正常——包括get请求和post请求都正常。 奇怪的现象: 在"Access-Control-Allow-Origin"未添加"http://localhost:8090"之前, * get请求: 请求正常 * post请求:请求出错,有403 跨域问题报错 区别: get请求 请求头没有origin,post请求头有origin。 get请求请求表头如下: "image.png" (https://wmprod.oss-cn-shanghai.aliyuncs.com/c/user/20240928/deae797a785653376521fe2291bc8f60.png) 总结下,主要有如下几个疑问: 1. 为什么get请求不会有跨域问题。 2. 为什么get请求请求头没有origin字段,post请求请求头有origin字段。 3. 本地调试,除了让后端在白名单里面加上localhost域名,还有其它更好的方案吗?
0
1
0
浏览量135
劳资最帅

请问vue3+vite项目中,打包生成dist文件后,运行npm run preview预览,是不能请求接口吗?

"image.png" (https://wmprod.oss-cn-shanghai.aliyuncs.com/c/user/20240928/6106f76fd82c70c23311ba73573cfdf9.png) 这是我vite.config.js的配置: "image.png" (https://wmprod.oss-cn-shanghai.aliyuncs.com/c/user/20240928/7be74d5a0327a0f728de95fc3703704e.png) 这是我axios的配置: "image.png" (https://wmprod.oss-cn-shanghai.aliyuncs.com/c/user/20240928/449b07b5547dc5f1ff9694a731960151.png) 这是我.env.test的配置: "image.png" (https://wmprod.oss-cn-shanghai.aliyuncs.com/c/user/20240928/8a058e310fffc2d9e6e870d506834440.png) 这是我network的截图: "image.png" (https://wmprod.oss-cn-shanghai.aliyuncs.com/c/user/20240928/276b7b39ee5dc27ff93977401afa34ed.png) "1715932637949.jpg" (https://wmprod.oss-cn-shanghai.aliyuncs.com/c/user/20240928/e8baf355b97e694f63017626173b070f.png) "1715932688738.jpg" (https://wmprod.oss-cn-shanghai.aliyuncs.com/c/user/20240928/0c078cae380c7a7814a6f9829659f296.png)
0
1
0
浏览量114

履历