博客文章
最近发表的评论
  • Laravel 5.8 前瞻 at 2天前

    @wujunze 被坑过。只怪自己看文档没看仔细。

  • Allowed memory size of 134217728 bytes 错误解决心得 at 2天前

    @那个松鼠很眼熟 如果是 web 程序,肯定超过90%会挂,首要条件是找为什么内存使用这么高。普通的调优程序员自己都做好了,不会到这来找答案,到这来找答案一般都属于几乎没办法了的这种。上面提供的就是最后的吊命参,当然不能当菜天天吃。

  • [Laravel 5.8] Laravel 5.8 中缓存的 TTL 单位变更 at 1周前

    我在这个设置上还真踩过坑,一直以为 TTL 是秒 ---- 其他的各种 TTL 都是秒级。然后看文档才知道是分钟。大意了。
    这回改过来了,再好。

  • Laravel-admin 如何安装? at 1个月前

    @water_of_droplets 这是 nodejs,webpack 的锅

  • PLAN A:30 分钟未付款取消订单 at 1个月前

    @GDDD Laravel 里有 delay ,可以直接用,因为有很多讲 delay 的文章,想必大家都熟悉了,所以这次就略过了。

  • PLAN A:30 分钟未付款取消订单 at 1个月前

    @snower 没事的,别放 redis 里,放其他专业的消息队列里,一天百万不是什么事儿。象 rabbitmq , zeromq ,kafka ,至少是 c10k 的,每秒万条并发,一天下来10亿不是事。至于处理那些过期事件,要看消费者的能力了,多台群集可以尝试。如果担心一台 mq 的处理能力,可以配置多台,根据类型发到不同的消息队列分担任务就行。

  • 【北京 】【百度】【20K-30K】PHP 研发攻城狮请到碗里来(B2B 业务) at 1个月前

    可惜我 toC 了好多年。

  • E-commerce 中订单系统的设计 at 1个月前

    @Wi1dcard 抱歉。我们讨论的始终是电商,不是微观世界,没那么多小数位的,你可以继续选择用 decimal ,并不影响。就止停止,不再回复。

  • E-commerce 中订单系统的设计 at 1个月前

    @Max 我们的算法是直接按分四舍五入的,最后一个补全,比如3个人付11分(仅为演示),则第一第二个是 round(11/3,0) 也就是4分,最后一个是 11-4-4 =3 分,保障整体不会错。 如果是7个人付50分,则前6个付7分,最后人个付8分。偏差在一分钱。要是有客诉,赔1分钱给他就是。

  • E-commerce 中订单系统的设计 at 1个月前

    @Wi1dcard 哥们, 皮分了解一下? unsign bigint 了解一下?

  • PLAN A:30 分钟未付款取消订单 at 1个月前

    考虑下要不要把方案三也简单地实现下。

  • PLAN A:30 分钟未付款取消订单 at 1个月前

    @hello-bug 是的。Laravel 里直接有了 delay .

  • PLAN A:30 分钟未付款取消订单 at 1个月前

    @ruke 是的,第三种方案就是这种。

  • PLAN A:30 分钟未付款取消订单 at 1个月前

    @赵亚博 部分延迟队列也是使用的过期,只不过内部封装好了。

  • PLAN A:30 分钟未付款取消订单 at 1个月前

    @Blings 第三个也简单。按文中描述的,把 app\Console\Commands\OrderExpireListen.php 里的 $order->cancel(); // 执行取消操作 换成 Redis::rpush('ORDER_CANCEL',$order->id); 这样放到队列里。另写一个命令,象 OrderExpire 一样监听队列,从 Redis::blpop 里取出,就有订单ID,然后按往常一样 cancel 处理。上述是伪码。

    因为大部分人的问题可以通过第二种方案解决,若业务量真的大到需要多台单独的机器来处理,估计项目已经用其他语言重构了,所以只留了思路,没有代码。

  • E-commerce 中订单系统的设计 at 1个月前

    @Max 电商系统使用分作为金额单位,在库中存整型,不仅考虑到数据库中读写的精度,更重要的是外部处理程序的精度。 PHP 中,可以使用 bc_math 进行高精度计算,有效解决精度问题,如果是其他的客户端来操作数据库呢?比如 C 、 Erlang 、Rust 、其他各新兴语言 ?能保证其他的语言也能自如地进行高精度运算么?但整型,几乎所有语言都可以。所以为了避免引入浮点数在各个平台/语言上处理不一致的问题,统一使用整型,这是一种避坑的动作,前人流血流泪总结出来的。我们用就是了。

    金融系统还使用皮分作为单位呢。

  • Laravel5.5 使用 Elasticsearch 做引擎,scout 全文搜索 at 2个月前

    @sensen 服务端要,客户端不用。
    我们写 PHP 是客户端调用,使用的是 HTTP Restful API 。可以不用 Java SDK。

  • Laravel5.5 使用 Elasticsearch 做引擎,scout 全文搜索 at 2个月前

    @沙漠行者 其实不用改源码的,只是作者可能对 ElasticSearch 的查询语法和排序不是很理解,等理解了 ElasticSearch 就知道该怎么用了。

  • 可扩展的用户表设计 at 2个月前

    换个方式

    小项目的话,用户的主信息字段是固定的,不固定增减多也影响不大。
    大项目的话,用户的主信息字段是固定的,不怎么增减,如果增减频繁,换个产品经理就是了。

    oauth 这一块,目前也就这么几家,短期之内要多几个不容易,全部写在表里更简单。
    至于国外的那些个,我想先解决 GFW 再说吧。

    user_extends 看似简单,但一个用户有10项个人资料就要写入10行,表行数暴增不说,取出后再处理10遍也是够够的了,话说一个用户10项个人资料不算多吧?

    一是真有这么多扩展吗?
    二是考虑这么多的扩展,用 NoSQL 不好吗?用 MongoDB 之类的文档数据库不行吗?干吗非要往关系型数据库上堆呢?

    个人意见。

  • Laravel 高并发调优笔记 at 3个月前

    @ADKi 我们所指的 随意 不是同一个东西,比如,我把 $username $userName $UserName `$user_name $User_name $User_Name 称为随意,你看,其实都有规则,并不是真随意。
    但是 var Usernamevar username 就不随意了。
    PHP 里前一步 $data = false 后一步 $data = [] 了。可恨的是,return empty($data)?false:$data ,他有可能是数组也有可能是 bool 。
    并且,好多 PHPer 都这么用,并且不以为然。认为这才是正确的。