分类: Yii 2
-
本文记录了在 Rancher 中通过克隆容器部署集群,并配置负载均衡验证流量分发的过程。针对命令行下 Redis 锁定频率过高的问题,通过调整执行间隔、优化事务同步时间及更新逻辑,成功降低了锁定频率并提升了执行性能。测试结果验证了在不同任务数量下的同步频率平均值符合预期的理论计算公式。
-
文章介绍了在 Yii 2.0 中利用 Docker、Supervisor 及 Redis 锁定机制实现控制台命令集群部署的方法。通过改造 Redis 锁定逻辑,在同步任务前获取锁,结束后释放锁,确保同一租户的同步任务在多台服务器间不重复执行,解决了冗余问题。测试验证了该方案能显著提升任务处理性能与同步即时性,同时给出了同步间隔的计算公式及容器数量建议。
-
文章针对在 Yii 2.0 中实现跨多表数据唯一性验证的需求,通过核心验证器 unique 结合 filter 回调函数,利用匿名函数修改查询对象,将模型关联字段、常量状态以及请求参数数组存储为全局变量后注入验证逻辑,最终实现了针对文章标题与渠道任务关联条件的复杂唯一性校验,生成的 SQL 查询符合预期。
-
本文记录了解决 Yii 2.0 报错 yii\base\ErrorException: Undefined index: HTTP_ACCEPT 的过程。通过查看运行时日志发现,当 User-Agent 为 okhttp/3.12.0 时,$_SERVER 数组中不存在 HTTP_ACCEPT 索引。解决方法是要求 Android 客户端在 Headers 中明确声明 Accept 参数,或者在服务端代码中增加判断,当该索引不存在时不直接使用,从而消除错误。
-
在基于 Yii 2.0 上传 .jpg 文件时,尽管允许的扩展名列表中已包含 jpg,上传仍被拒绝。通过调试 FileValidator.php 发现,系统默认开启的 checkExtensionByMimeType 功能通过 MIME 类型校验扩展名,但判定结果不匹配,导致文件无效。最终将文件扩展名改为 png 后上传成功,确认问题源于 MIME 类型与扩展名的校验机制。
-
本文介绍了基于 Composer 将 Yii Framework 从 2.0.15.1 版本升级到 2.0.31 的过程。首先通过命令将 Composer 更新至最新版本,随后运行更新命令完成 Yii 框架的升级。文章还说明了如何在线查看升级说明文档,以了解可能的不兼容更改及类属性与方法的调整情况。
-
本文介绍了在 Yii 2.0 生产环境中开启 Schema 缓存以优化性能的操作,包括修改配置文件、验证 Redis 缓存生成及手动清理缓存的命令。测试发现清除 Schema 缓存后并非立即刷新数据,而是在下次调用相关表结构时触发更新。文章还说明了在 Docker 容器部署和 Rancher 升级时执行数据库迁移与清理命令的流程。性能测试对比显示,开启缓存后接口并发峰值反而略有下降,因此决定暂时保留该配置不回退。
-
针对 Yii 2.0 中企鹅号任务发布后入库失败无法查询记录的问题,文章放弃了客户端冗余存储方案,采用新建预发布日志表并增大字段长度的设计。通过创建继承 ActionFilter 的过滤器,在动作执行后根据返回码非 10000 时插入记录,并利用 UNION ALL 语法合并查询结果,成功实现了入库成功与失败皆可查询的功能。
