说说我曾注册的那些域名

本贴最后更新于 1965 天前,其中的信息可能已经沧海桑田

项目

超级话题积分系统

术语

积分行为:如转发、评论超级话题下的帖子、签到某超级话题或者帖子被其他人回复等行为。

积分行为次数:产生积分行为的累计次数。

业务场景

用户在某超级话题下,第N次产生累计积分的行为,如转发微博,会增加该用户在该超级话题下的积分总数。具体的积分规则见长文章

问题

曾有用户反馈说超级话题积分有漏记的情况:为什么我评论了却没有加分;为什么转发了超级话题帖子没有加分等等。随后,我们立即通过查询后台的积分记录发现,会看到转发行为在第5次时,积分的增加却为0。这显然是不正常的。

首先,排除了根据积分行为的次数来计算积分值的问题。比如第 5 次转发微博应增加 6 分。这块的规则,利用二分法写死在程序里面,也做过单元测试,不会有问题。那么,问题就锁定在这个积分行为的次数。

首先来看看积分次数的获取:

    public static function find($uid, $aid, $status) {  
        $sql = 'SELECT * FROM '.self::table($aid).' WHERE uid = ? AND aid = ? AND status = ?';
        return Comm_Db::d(Comm_Db::DB_BASIC)->fetchRow($sql, array($uid, $aid, $status));
    }   

然后,利用上述 find()方法来取得该用户在某超级话题下的某积分行为的累计次数。这是有问题的,在于读于从库,但并不保证从库的值是最新的,所以导致当前获取的积分行为次数并不一定是正确的(小于等于实际的值)。

随后,程序会根据当前的次数计算积分值,并分别更新积分值和该行为的积分行为次数值。

所以,这次利用 MySQL 的用户自定义会话变量的方式,来解决上述问题。

    public static function incCounter($uid, $aid, $status) {
        $db = Comm_Db::d(Comm_Db::DB_BASIC);
        $sql = "UPDATE ". self::table($aid) ." SET `ctn_counter`=@ctn_counter:=`ctn_counter`+1 WHERE `uid` = ? AND `aid` = ? AND `status` = ?";
        $db->execute($sql, array($uid, $aid, $status));
        $sql = "SELECT @ctn_counter";
        $rs = $db->fetchOne($sql, null, true);
        return $rs;
    }

改进后,如上述函数,程序将先进行调用 incCounter()函数,将当前的积分行为次数自增,并将值存入当前变量中。随后,立即将其读取并返回给 PHP 进行积分处理。这样一来,就保证了积分行为次数的正确性。

五、关于MySQL用户自定义变量的结束语

在这次的“填坑”过程中,使用了MySQL变量解决了MySQL主从服务同步延迟的问题。这篇文章也算是对于MySQL用户自定义变量深入学习的记载。

除此之外,仍有个问题,用户自定义的会话变量是存在进程内存中的。但是,是存在客户端进程中还是服务端进程中的呢?


参考文章:

文章来源:胡旭博客 => 深入MySQL用户自定义变量:使用详解及其使用场景案例

转载请注明出处,违者必究! 1 0-0 0-0 0 0-0 13-13 2650 0-0 13-42 第一个使用的域名是那种空间服务商免费赠送的三级域名,当时的提供商是主机屋(现在的博客域名就是在主机屋注册的)。记得,作为学生屌丝党为了使用主机屋提供的免费空间,不得不每个月在百度给一次“好评”。写评语的时候,还有要求,不得这么,不得那么。为了免费也就忍了,但最后终究被洗脑选择了在主机屋购买付费的产品。注册了**ihuxu.com**域名,购买了相应的空间。空间是最便宜的那种,貌似有几百个网站公用一台服务器。

截止今天,ihuxu.com 域名年龄 3 年 6 月 21 天(创建于 2013 年 05 月 03 日)。当时注册的想法就是 iphone、ipad、ipod、ihuxu,很高大上。还有就是谐音爱胡旭。

接着,当时已经在第一个免费的三级域名空间有练习过静态和动态脚本的编写(PHP)。算是有些经验,接着遇到瓶颈,感觉代码写不下去了,越写越多,越写越乱。于是乎,了解到什么是设计模式,并应用在其中。

后来重复造了一个不是很圆的轮子,GXBlog 博客系统。反反复复 GXBlog 有过几个版本,最后面试工作还有提到。可惜的是,后来使用了将近 1 年多就转成现在的 WordPress 了。因为,觉得对于内容的专注是更重要的。

接着,我注册了 china-automate.com(已过期)、hxzdhw.com(已过期)、echenxin.com(已过期)、chendada.com(已过期)、huxu.me(已过期)、huxu.date。

  • 值得一提的是 china-automate.com 和 hxzdhw.com。当时大三的时候做了一个门户网站,华夏自动化网。凭借自己的专业和计算机技术亲自搭建了网站,自动化行业垂直门户。我们几个人维护了不到半年,后来放弃了。最后,感觉失败的原因还是心不静。
  • echenxin.com 是我们当时注册的公司 – 沈阳晨信网络科技有限公司的企业网站。后来,公司注销中网站也随之关闭了。
  • huxu.me 是当时头脑一热白花了 200 块钱买了一年。
  • huxu.date,这个时候头脑已经非常清醒了,所以只花了 90 块钱购买了 10 年。划算~
  • 最值得一提的是目前最后一个注册的域名:huxu.blog。他是由 WordPress 提供的域名后缀,寓有博客之意。且域名相对看起来很加简单、明了与对称。故注册之。如果你对.blog 域名感冒,可以到 get.blog 进行注册。

所以,目前手上只有三个和自己有关的域名:ihuxu.com、huxu.blog、huxu.date。ihuxu.blog 域名目前是我的重心,所有的信息都存放在该域名下;huxu.blog 目前定位在宣传、仅仅是个博客的入口;huxu.date 还没有派上用场。

好了,就说这么多吧。

  • 域名

    域名(Domain Name),简称域名、网域,是由一串用点分隔的名字组成的 Internet 上某一台计算机或计算机组的名称,用于在数据传输时标识计算机的电子方位(有时也指地理位置)。

    43 引用 • 208 回帖

相关帖子

欢迎来到这里!

我们正在构建一个小众社区,大家在这里相互信任,以平等 • 自由 • 奔放的价值观进行分享交流。最终,希望大家能够找到与自己志同道合的伙伴,共同成长。

注册 关于
请输入回帖内容 ...