职位聚合引擎


README

                                                  ________________________  
                                                 /                        \ 
,--.                                            /                          |
|  |___________________________________________/_____________________      |
|  |_________________________________________________________________)     |
|  |                                           \                           |
`--'                                            \                          |
                                                 \________________________/ 
        Veslo: a vacancy aggregation engine

Packagist Version Quality Score Code Climate technical debt Packagist

安装

Docker

推荐的安装方式是通过 docker-compose。您需要至少 Docker 17.05.0-ce 版本的守护进程(在 FROM 中使用 build-time ARG)才能成功构建所有容器。

使用 Docker 运行自动部署脚本进行本地开发。

$ bin/deploy_dev.sh

installation asciicast

脚本未自动加载路线图配置,您需要使用单独的命令手动插入。

$ docker-compose run --rm app bin/console doctrine:fixtures:load \
    --group roadmap.configuration.parameters \
    --append

启动职位解析过程可能需要 120 秒。

手动

您可以通过提供 .env 文件(使用 .env.dev.dist 作为模板)并克隆和部署应用程序来使用自己的环境。以下是访问通过 Web 服务器之前准备应用程序的步骤。

$ git clone git@github.com:symfony-doge/veslo.git veslo && cd "$_"

// setup your own connection parameters
$ cp .env.dev.dist .env

$ cp app/config/parameters.yml.dist app/config/parameters.yml
$ cp webpack.env.dev.js.dist webpack.env.js

检查您的环境对 Symfony 的要求,并通过 Composer 安装 PHP 依赖项。您还需要 php-ds 扩展,以便某些服务与高效的 PHP 7 数据结构一起工作。

$ bin/symfony_requirements
$ composer install

使用 Yarn(需要 Node.js 10.x)安装 JavaScript 依赖项并编译资源。

$ yarn install
$ yarn run build:dev

应用数据库迁移。

$ bin/console doctrine:migrations:migrate latest

加载路线图配置。

$ bin/console doctrine:fixtures:load --group roadmap.configuration.parameters --append

测试

加载固定值。

$ docker-compose run --rm app bin/console doctrine:fixtures:load --group test

应用 Codeception 参数。

$ cp parameters.codeception.dev.yml.dist parameters.codeception.yml

执行测试。

$ docker-compose run --rm app bin/codecept run --steps

工作流程

FOUND (initial place)
|
| to_parse
 ------------> PARSED
               |
               | to_collect
                ------------> COLLECTED
                              |
                              | to_index
                               ------------> INDEXED

有一组适合调试每个工作流程转换的日志文件。 var/logs 包含

API

$ docker-compose run --rm app bin/console veslo:anthill:digging hh php --iterations=1

通过路线图(搜索计划)和配置从职位网站找到职位。搜索结果将根据当前工作流程(默认 veslo.app.workflow.vacancy_research.to_parse)提供到解析队列。

可用的路线图定义在 AnthillBundle/Resources/config/roadmaps.yml 中,配置在 AnthillBundle/Resources/fixtures/roadmap/ 中。

$ docker-compose run --rm app bin/console veslo:anthill:parsing --iterations=1

轮询新的原始职位数据(html/json 等)进行解析。结果将根据当前工作流程(默认 veslo.app.workflow.vacancy_research.to_collect)提供到收集队列。

$ docker-compose run --rm app bin/console veslo:anthill:collecting --iterations=1

抓取解析后的职位数据(AnthillBundle/Dto/Vacancy/RawDto 的实例)并决定是否应该收集进行分析。结果将保存在本地存储并在索引队列中提供(默认 veslo.app.workflow.vacancy_research.to_index

$ docker-compose run --rm app bin/console veslo:sanity:indexing --iterations=1

将接受的职位发送到微服务进行分析(请参阅 ANALYSER_HOSTANALYSER_PORT)并将接收到的元数据持久化到本地存储。远程服务实现由 symfony-doge/ministry-of-truth-client 桥接定义的 API。示例(Go + Gin): symfony-doge/ministry-of-truth-cis

目前支持的路由图

  • hh(配置:phpjavascriptgolangpythonjavac++

使用示例

www.veslo.it

另请参阅

变更日志

本项目的所有重大更改都将记录在 CHANGELOG.md 中。