不知道我的步骤对不对 反正就记在这了。

先简单介绍下我的目录规划,以后会有所变动,现在一切从简。

/
---app
    ---Controller
        Home.php
    ---Config
        ---local
            db.php
            ...
    ---Model
    ...
---system
    Loader.php
    Uri.php
    Route.php
    Config.php
---runtime
    ...
index.php

第一步:入口文件;
一件很重要的事情,原因看注释。

<?php
// 修正cli模式下运行目录不同部分系统函数取值不同的问题 比如: getcwd
defined('STDIN') AND chdir(__DIR__);

定义一些必要的常量

<?php
define('APP_FOLDER', 'app');
define('SYSTEM_FOLDER', 'system');

define('ROOT_PATH', __DIR__ . DIRECTORY_SEPARATOR);
define('APP_PATH', ROOT_PATH . APP_FOLDER . DIRECTORY_SEPARATOR);
define('SYSTEM_PATH', ROOT_PATH . SYSTEM_FOLDER . DIRECTORY_SEPARATOR);

然后要手动导入自动加载类,并且添加自动加载路径,注册自动加载函数。
这样之后的类就可以自动加载了。

include SYSTEM_PATH . 'Loader.php';

Loader::addAutoLoadPath(SYSTEM_PATH);
Loader::addAutoLoadPath(APP_PATH);
Loader::register();

下一篇是Loader类的具体实现。

感觉就照我这个作息时间,就照我这个工作方式。离一场大病也不远了

前期build数据使用php脚本,25000条数据(以下时间均为插入25000条测得)大概要4分钟
为了加快build速度,决定采用并发支持比较好的golang来做
第一个demo使用了官方给出的操作示例,单条循环插入

for _, item := range *items {
        _, err = client.Index().
        Index("twitter").
        Type("tweet").
        BodyJson(item).
        Do()
}

改写之后,只开一个线程的话时间缩短到1分30秒
开四个或四个以上线程,时间大约30-40秒
这样做还是不够理想,毕竟我们是google级别的工程师^_^(龙哥说的~~)
然后寻找改进方法。
龙哥提到有一个Bulk方法可以批量插入数据。
一番研究之后,代码片段如下:

bulkService := client.Bulk().Index("test").Type("test")
for _, item := range *items {
    fmt.Println("[thread", i, "] ", item.UniqueId)
    r := elastic.NewBulkIndexRequest().Index("test").Type("test").Doc(item)
    bulkService.Add(r)
    // 大于阀值先存一波
    if bulkService.NumberOfActions() > MaxBulkActions {
        bulkService.Do()
    }
}
// 剩余的存一波
if bulkService.NumberOfActions() > 0 {
    bulkService.Do()
}

修改过后经测试,四线程是最优的。插入25000条数据大约只需要4秒钟。

只顾着往前走,一直没时间回顾这一年,在回家火车上的这20个小时正好可以总结一下。
这一年是人生的最大的转折点,命运真的很有趣,会在你以为无法改变的时候来一个大反转!转折的起始点就是来上海工作吧~这里我必须感谢三个人!这也是我心里一直想着的。来上海上班,我自己都从来没有想过这种可能,我经常说不喜欢大城市,多亏了俊杰,一次又一次的鼓励我来,甚至比我都在意这件事情。最后在俊杰的推荐下,我投递了简历,来到了房多多。感谢俊杰。有幸进入房多多这个人才济济的团队,要感谢刘总监。当时我自己都持怀疑的态度,只是有很强的意愿。当时技术菜如狗的我,连个斐波拉契数列都不能很好的写出来,却通过了刘总监的面试,得知通过之后实在是开心不已。感谢刘总监对我的信任。接下来就是我龙哥了,确实很巧,我跟龙哥同一天入职,同时签了入职合同。这一年来对我帮助最多的就是龙哥了。从菜如狗成长到现在,一路走来多亏了龙哥指点迷津,让我少走了很多很多弯路。感谢龙哥!
今天年终考核的结果也出来了,说实话,比我想象的好,跟妈妈说了,她也非常开心。能得到同事的肯定,很开心。其中不光有我自己的努力,还有龙哥的帮助,大恩不言谢,永远铭记于心!
工作了这一年,感觉还是很好的,公司气氛不错,没有传说中的勾心斗角,只有无私帮助,共同进步。同事们都很好相处,就像上学时期一样。能有这样的环境,实在是太难得了。我会珍惜的。这一年来结识了不了朋友,珍惜大家在一起的欢乐时光~
2016新的开始,我会更努力。爱你们!