年度归档: 2024 年
-
从 Gate.io 提现 USDT 至 OKX 选择 Optimism 网络后,收到邮件提示因充币临时暂停导致资金未到账。查看充币页面发现显示暂停,预计恢复时间从 6 月 19 日延后至 21 日。实际等待至 21 日晚 10 点左右才收到到账邮件,经查 APP 充币记录确认资金已于该时间到账,问题解决。
-
在导出 Excel 时遇到 String exceeds Excel’s limit of 32,767 characters 报错,这是因为 Excel 单元格最多只能存储 32,767 个字符。通过打印日志分析写入数据,发现某个字段的内容长度达到 7 万多个字符,远远超出了 Excel 的字符数限制。解决该问题需要定位并截断或处理过长文本,以符合 Excel 的存储规范。
-
本文在 Laravel 9 中验证了队列任务超时机制的运行情况。作者通过多次测试发现,任务超时功能在 Windows 系统因缺少 pcntl 扩展而无法生效,需在 Linux 环境下运行。实验过程中,使用 sleep() 函数会导致任务卡住且使尝试次数设置失效,相关日志与数据库记录均不符合预期。移除 sleep() 并采用其他方式模拟超时后,配合 $tries、$failOnTimeout 及 $backoff 属性,队列任务的失败与重试行为基本符合逻辑。结论是 sleep() 方法会干扰超时及重试机制的正确执行。
-
本文探讨了 Laravel 9 中队列任务的最大尝试次数验证。通过在任务类中设置不同的 $tries 属性值并进行测试,观察到未设置该属性时默认执行次数为 1。进一步测试表明,将其设置为 0 时会无限次重试,而设置为 5 时则严格按照 5 次执行,前 4 次失败后继续尝试,直到第 5 次失败才最终停止。
-
本文针对当前 Excel 导出进度由前端独立显示且未受后端控制的问题,制定了按实际导出进度展示的调整规则。实施后,后端处理过程分为四个阶段:作业排队时进度保持 0%;实际写入数据时按每 1000 行增加 9.9% 直至 99%;完成格式处理及文件上传后显示 100%;最后前端获取下载链接时不再显示进度。该方案通过细化后端处理步骤实现了进度的准确同步。
-
本文记录了参与 io.net 项目私募的全过程及收益情况。该项目私募价因代币总量下调调整为 0.75U,代币上线交易所后价格为 5.734U。作者通过投入 2500U 的本金计算,最终净收益率达到 6.65 倍。文章最后探讨了通过借贷卖出提前锁定利润,或分批卖出以应对未来币价波动的策略。
-
本文针对 Laravel 9 中存在两组时间字段的验证需求,说明了如何确保 shipping_at_gmt_start、shipping_at_gmt_end 与 operated_at_gmt_start、operated_at_gmt_end 这 4 个字段中必须存在完整的一组。文章介绍了利用 required_without 规则的实现逻辑,即当一组字段的部分或全部缺失时,强制另一组字段必填,从而在两组字段间实现互斥必填的验证效果。
-
本文探讨了在 Laravel 9 中验证两个时间字段跨度不可超过 3 个月的实现方法。文章介绍了使用闭包结合 Carbon 自定义验证规则,将起始时间加上 3 个月后与结束时间进行比较,并处理了起始字段不存在时避免报错的逻辑。最终通过具体的时间参数测试,验证了该规则在 2024 年闰年场景下能够正确判断时间跨度的合规性。
-
针对 MySQL 8 中 IN 条件用于多个字段时查询结果为空的问题,文章记录了在 Laravel 9 中使用原生查询遇到的语法错误与列数违规报错。尽管报错 SQL 手动执行成功,但程序运行异常,最终决定放弃该 SQL 写法,调整为另一种 SQL 格式,解决了报错并使查询结果符合预期。
-
本文分析了同一条count(*)查询SQL在Navicat中仅需3秒,而在Laravel 9中执行却耗时60秒的性能差异问题。通过在容器Tinker命令行及程序中执行原生SQL进行验证,排除数据库连接因素,确认耗时仅3秒左右。最终排查发现性能瓶颈位于Laravel框架底层Builder.php的runPaginationCountQuery方法。由于暂不便修改框架底层实现,决定将查询条件改为使用where shipping_type in (1, 2)来规避问题,使执行时长降至3秒左右,符合预期。
