symfony-doge / veslo
职位聚合引擎
Requires
- php: >=7.2
- bunny/bunny: ^0.4.1
- doctrine/doctrine-bundle: ^1.6
- doctrine/doctrine-fixtures-bundle: ^3.1
- doctrine/doctrine-migrations-bundle: ^1.0
- doctrine/orm: ^2.5
- guzzlehttp/guzzle: ^6.3
- incenteev/composer-parameter-handler: ^2.0
- knplabs/knp-menu-bundle: ^2.2
- knplabs/knp-paginator-bundle: ^2.8
- nelmio/alice: ^3.5
- sensio/distribution-bundle: ^5.0.19
- sensio/framework-extra-bundle: ^5.0.0
- shivas/versioning-bundle: ^3.1
- stof/doctrine-extensions-bundle: ^1.3
- symfony-doge/ministry-of-truth-client: ^0.1.1
- symfony/monolog-bundle: ^3.1.0
- symfony/polyfill-apcu: ^1.0
- symfony/swiftmailer-bundle: ^2.6.4
- symfony/symfony: 3.4.*
- twig/extensions: ^1.5
- twig/twig: ^1.0||^2.0
Requires (Dev)
- codeception/assert-throws: ^1.0
- codeception/codeception: ^4.1
- codeception/module-asserts: ^1.3
- codeception/module-webdriver: ^1.2
- codeception/specify: ^1.1
- codeception/verify: ^1.0
- php-ds/php-ds: ^1.2
- sensio/generator-bundle: ^3.0
- symfony/phpunit-bridge: ^3.0
This package is auto-updated.
Last update: 2024-09-09 18:01:28 UTC
README
________________________ / \ ,--. / | | |___________________________________________/_____________________ | | |_________________________________________________________________) | | | \ | `--' \ | \________________________/ Veslo: a vacancy aggregation engine
安装
Docker
推荐的安装方式是通过 docker-compose。您需要至少 Docker 17.05.0-ce 版本的守护进程(在 FROM 中使用 build-time ARG
)才能成功构建所有容器。
使用 Docker 运行自动部署脚本进行本地开发。
$ bin/deploy_dev.sh
脚本未自动加载路线图配置,您需要使用单独的命令手动插入。
$ 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_HOST
,ANALYSER_PORT
)并将接收到的元数据持久化到本地存储。远程服务实现由 symfony-doge/ministry-of-truth-client 桥接定义的 API。示例(Go + Gin): symfony-doge/ministry-of-truth-cis。
目前支持的路由图
- hh(配置:
php
,javascript
,golang
,python
,java
,c++
)
使用示例
另请参阅
- symfony-doge/management-kit — 一组监控和管理 GUI 工具,用于管理此项目的数据和流程。
变更日志
本项目的所有重大更改都将记录在 CHANGELOG.md 中。