第四步:进行业务配置

1、首先切换到应用配置目录:
cd Application/Spider/Weather/Config/
2、关于全局配置文件 global.php:

注意:这个文件一般无需改动,除非你要引入新的全局子配置文件。

3、关于全局子配置文件 database.php:

最终配置好的样板代码如下:

<?php
return array(
    'redis' => array(
        'prefix' => 'Weather',
        'host'   => '127.0.0.1',
        'port'   => 6379,
        'database' => 0,
    ),
);
4、关于全局子配置文件 main.php:

最终配置好的样板代码如下:

return array(
    'language' => 'zh',
    'multi_worker'  => true,
    'start' => array(
        'WeatherProducer'      => true,
        'WeatherDownloader'    => true,
        'WeatherParser'        => true,
    ),
    //全局任务配置参数:每条任务也可以单独配置自己的context成员,最终采用merge合并覆盖策略
    'task' => array(
        'crawl_interval'  => 1,
        'max_depth'       => 1,
        'max_number'      => 0,
        'max_request'     => 0,
        'compress'  => array(
            'enabled'   =>  true,
            'algorithm' => 'gzip',
        ),
        'limit_domains' => [],
    ),

    //初始任务配置参数:既支持一维数组形式的单任务,也支持二维数组形式的多任务
    'task_init' => array(
        'url' => 'http://www.weather.com.cn/weather/101010100.shtml',
        'method' => 'get',
        'type'   => 'text',  //类型自由定制
        'rule_name' => 'r1', //如果留空将使用md5($task_id)作为规则名
        'refefer' => '', 
        'context' => array(  //支持各种上下文参数设置,具体参考手册
            'cache_enabled'     => true,
            'cache_directory'   => sys_get_temp_dir() . '/DownloadCache4PHPCreeper/',
        ),
    ),
);
5、关于业务worker实例配置文件 AppProducer.php:

最终配置好的样板代码如下:

<?php
return array(
    'name' => 'producer1',
    'count' => 1,
    'interval' => 1,
);
6、关于业务worker实例配置文件 AppDownloader.php:

最终配置好的样板代码如下:

<?php
return array(
    'name' => 'downloader1',
    'count' => 2,
    'socket' => array(
        'client' => array(
            'parser' => array(
                'scheme' => 'ws',
                'host' => '127.0.0.1',
                'port' => 8888,
            ),
        ),
    ),
);
7、关于业务worker实例配置文件 AppParser.php:

最终配置好的样板代码如下:

<?php
return array(
    'name'  => 'parser1',
    'count' => 3,
    'socket' => array(
        'server' => array(
            'scheme' => 'websocket',
            'host' => '0.0.0.0',
            'port' => 8888,
        ),
    ),
);

results matching ""

    No results matching ""