互联网公司为啥不使用mysql分区表?(一分钟系列)

缘起:有个朋友问我分区表在58的应用,我回答不出来,在我印象中,百度、58都没有听说有分区表相关的应用,业内进行一些技术交流的时候也更多的是自己分库分表,而不是使用分区表。于是去网上查了一下,并询问了58到家的DBA专家,将自己收到的信息沉淀下来,share给大伙。…

http如何像tcp一样实时的收消息?

http如何像tcp一样实时的收消息?

一、webim如何实现消息推送
webim通常有三种方式实现推送通道:
1)WebSocket
2)FlashSocket
3)http轮询
其中1)和2)是用Tcp长连接实现的,其消息的实时性可以通过tcp保证。
方案3)才算是webim实现消息推送的“正统”方案,用http短连接轮询的方式实现“伪长连接”,既然是轮询,有朋友就对消息的实时性产生了质疑。本文要解答,webim使用http长轮询如何保证消息的绝对实时性。…

        

使用 PHP 和 Phalcon 作 daemon 进程

某些情况下,我们除了提供web界面给用户,还需要运行一些后台任务。这些任务可能是由用户触发的(比如用户提交了一个请求,而这种请求很特殊,例如从github克隆一个项目并执行构建,至少需要几分钟才能执行完成,这种情况不适合阻塞的方式让浏览器等待结果返回);也可能是一些常规性的系统任务(比如将日志进行归档,转移到统一的地方进行备份)。前者一般是引入消息队列,用户的请求只是增加了一条待构建的消息到消息队列,然后有一个专门的订阅者读取消息,调度分发执行这个任务。后者最简单的方式便是crontab,但缺点是每个机器需要单独进行设置,不易维护;当然也可以通过一个统一的调度器,分发任务到多个任务节点的方式来执行。…

        

Phalcon initialize 和 onConstruct在Controller和Model中的初始化

Phalcon 中在Controller和Model中的初始化方法容易比较混淆的有initialize() 和 onConstruct();

值得注意的是initialize() 在控制器的一次request只会执行一次, 在Model中也是只会执行一次.
因此在控制器Controller1中执行initialize()后, 后面的代码再次使用new Controller1(), 或者再调用new Controller2()是不会执行Controller1或Controller2中的initialize方法的.…

    

phalcon设置统一数据库表前缀

<?php
class BaseModel extends \Phalcon\Mvc\Model {
    public function getSource()
    {
        return 'v1'.strtolower(get_class($this));
    }
}

新建一个基础模型,然后所有的模型在该类上继承即可,原文中的小写函数书写错误,应该是strtolower