大象笔记

知者行之始,行者知之成

Magento 服务器磁盘空间被图片缓存占满

最近批量导入了一批 Magento 产品信息,不知道为何直接导致服务器磁盘空间被占满。 而导入的产品也不多,不到1万个,理论上不应该占用上 G 的空间啊。 使用 ncdu 工具排查 使用之前的磁盘空间分析工具 ncdu。使用方式参考: 使用 ncdu 命令分析 linux 磁盘空间占用 发现,最占磁盘空间是 Magento 的项目目录。占了 76 G。 然后,在结果里面逐级进入子目录,发现最占空间的 Magento 子目录是: pub/media/catalog/product/cache 占了 56 个G。这个目录里全部是产品图片的缓存,即各种尺寸的缩略图。 不得不说,ncdu 真是运维神 ...

阅读全文...

工作周报自动生成,基于 Git 历史的 AI 提示词

每个周写周报是最浪费生命的事情之一,之前就吐槽过一次。本来是部门范围内提交就可以了,现在变成了公司所有人都需要提交,还要抄送人事部门,保证人事部门的 HR 也能看懂 🥲 这就很头疼,比如花费了一天时间完成了复杂的文件资料管理功能,但是提现在周报里就是一句话“实现了文件资料管理接口”。看起来没啥工作量的感觉 😅 比起写周报,还是写代码简单快乐一点。 今天周一,傍晚临下班提交 git commit 时,准备顺便把提交内容复制一份到周报文件里,这样就能省去周五下午花时间再整理。突然想到,为何不能让 ai 根据 git 提交历史信息自动生成周报呢🤔 great idea!于是动手试验了一下,效果非常满 ...

阅读全文...

Magento 的批量导入机制,及数据库表 importexport_importdata

找了半天 Magento 无法批量导入的问题,最后发现是 crontab 里设置了一个定时任务,每半小时 restart php fpm 的 docker 容器。导致 Magento 的批量任务没有执行完,就被 restart 中断了。如此反复,导致没有一个批量任务导入成功的。 我在 Magento 日志中,没有找到任何的相关日志,完全靠翻看数据库表结构,盲猜 magento 的导入机制,才解决这个问题的。 记录一下排查中学到的 Magento 无用知识: 数据库表 有个数据表,名为 importexport_importdata,记录了需要导入的产品信息。 实际数据来源就是,后台上传的 c ...

阅读全文...

人事管理系统开发之三,员工编号号批量生成

需求 人事管理系统中,员工入职的时候,需根据公司前缀生成唯一的员工号。 TODO 找几个知名公司的工卡看看员工号的格式 确保公司信息表中有公司前缀的字段 整理成文档。可以节省其他人收集的时间 按照入职时间顺序生成员工号。参考之前生成设备序列号的规则,复用一下这部分代码。 线上改表 问题的本质 员工号是做什么用的?如果没有员工号,会影响公司运营么? 方便客户投诉时使用。。。因为用名字投诉不方便,也容易重名,用员工编号最合适。 作为员工的唯一标识符 作为员工的登录账号 作为员工的考勤打卡号。作为一些三方考勤设备的标识。 作为员工的薪资发放账号 老员工的问题 按理说应该按照入职时间顺序生成员 ...

阅读全文...

人事管理系统开发系列

在使用 Golang Gin 开发一套公司内部使用人事管理系统。至于为何不使用企业微信或者钉钉,飞书之类的现成系统内置的人事管理模块。领导们给出的原因是,公司内部架构太复杂,企业微信内置模块不支持。 但是实际上,我感觉还是人事部门负责人并没有完整了解过这些平台的人事管理模块,其实是足够灵活配置的,满足需求。只是这些人懒得去了解罢了。不过多抱怨这些了,让开发就开发吧。 这个开发的过程非常的枯燥无趣,而且这种成熟的内部系统,开发再多也没有产出和价值。所以,我觉得边开发,边整理遇到的问题。才能不至于写着写着代码,就想去划水。 系列章节 人事管理系统开发之一,办理入职功能的一起编辑填写功能的实现方 ...

阅读全文...

人事管理系统开发之二,员工资料上传

需求 人事管理系统里设置了一堆员工需要上传的资料清单。当然,包含必须上传的和非必须上传的。 必须上传的,包括毕业证,学位证等 非必须上传的,包括各种资格证书,离职证明等 在编辑员工信息时,会拉取这个清单,显示在界面上。HR 或者员工可以选择上传对应的文件。 接口设计 原有的资料清单接口不做变化,保留,用于资料清单的后台增删改查编辑之用。 需要新增一个资料清单列表接口,可以提交员工 ID,在拉取资料清单的同时,返回: 该员工已经上传了哪些资料 上传时间 上传人 (有可能不是员工自己上传的,而是 HR 或其他管理员上传的) 再就是需要: 上传资料接口。即上传指定员工的某个类型的资料。传递 ...

阅读全文...

最近心慌,入手大表盘的小米手环 pro 9 监测心率

最近看到不少打羽毛球嘎了的兄弟,恰好最近总感觉心慌,担心心率有问题,就下单了一个小米手环,上一个还是五代,没想到九代 pro  就变成了这种大表盘,还挺好看👀 大表盘的小米手环 pro 9 ,这就是个手表哈😄 界面风格很像苹果手表,当然我只用过苹果手表一代,不知道现在是什么样子。续航号称20天,带了一晚上,早上醒来,电量还是100,夸张了。 我关注的功能 我需要用到的功能其实很少,主要是 随时关注心率。❤️ 跳太猛了,就躺平歇歇 闹钟。午休时,可以脱离手机闹钟。而且震动模式也不打扰别人 久坐提醒。坐久了,提醒我起身出去摸鱼一会,放松一下老腰 其他功能,其实我基本用不到。所以,简单纠结了一 ...

阅读全文...

golang gin 项目中添加多个 cmd 命令行工具,如何进行目录组织

需求 之前开发的大赛报名网站终于进入了收尾阶段,比赛已结束,现在需要把参赛选手上传的资料及视频文件导出,做备份。 正好借此机会了解一下如何在 golang gin 项目中添加一堆命令行工具。 为何要引入 cmd 目录 之前把导出数据的功能,都放到了 gin API 接口中,然后通过 swagger 的文档管理界面调用,再保存。 但是,这样搞有个坏处,就是导致 swagger 文档中,会多出很多不需要前端使用的接口。 此外,像视频批量导出这样需要长时间执行的功能,需要更多详情日志的场景,也不适合放到 API 接口中。 所以,我需要将这些功能从 HTTP API 接口中剥离出来,放到单独的命令行工 ...

阅读全文...