-
Notifications
You must be signed in to change notification settings - Fork 2.5k
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
Merge pull request #28 from sogou/dev
merge from sogou/workflow dev
- Loading branch information
Showing
27 changed files
with
466 additions
and
196 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,21 @@ | ||
language: cpp | ||
dist: trusty | ||
os: linux | ||
compiler: | ||
- gcc | ||
|
||
jobs: | ||
include: | ||
- env: COMPILER=g++-8 BUILD=Release STANDARD=11 | ||
compiler: gcc | ||
addons: | ||
apt: | ||
update: true | ||
sources: | ||
- ubuntu-toolchain-r-test | ||
packages: | ||
- g++-8 | ||
- cmake | ||
|
||
script: | ||
- make |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
|
@@ -5,7 +5,7 @@ set(CMAKE_SKIP_RPATH TRUE) | |
|
||
project( | ||
workflow | ||
VERSION 0.9.3 | ||
VERSION 0.9.4 | ||
LANGUAGES C CXX | ||
) | ||
|
||
|
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
|
@@ -4,6 +4,7 @@ | |
[](https://github.com/sogou/workflow/blob/master/LICENSE) | ||
[](https://en.cppreference.com/) | ||
[](#%E9%A1%B9%E7%9B%AE%E7%9A%84%E4%B8%80%E4%BA%9B%E8%AE%BE%E8%AE%A1%E7%89%B9%E7%82%B9) | ||
[](https://travis-ci.org/sogou/workflow) | ||
|
||
搜狗公司C++服务器引擎,支撑搜狗几乎所有后端C++在线服务,包括所有搜索服务,云输入法,在线广告等,每日处理超百亿请求。这是一个设计轻盈优雅的企业级程序引擎,可以满足大多数C++后端开发需求。 | ||
#### 你可以用来: | ||
|
@@ -31,10 +32,10 @@ int main() | |
* 实现自定义协议client/server,构建自己的RPC系统。 | ||
* [srpc](https://github.com/sogou/srpc)就是以它为基础,作为独立项目开源。支持``srpc``,``brpc``和``thrift``等协议。 | ||
* 构建异步任务流,支持常用的串并联,也支持更加复杂的DAG结构。 | ||
* 作为并行编程工具使用。除了网络任务,我们也包含计算任务的调度。所有类型的任务都可以放入同一个流中。 | ||
* 作为并行计算工具使用。除了网络任务,我们也包含计算任务的调度。所有类型的任务都可以放入同一个流中。 | ||
* 在``Linux``系统下作为文件异步IO工具使用,性能超过任何标准调用。磁盘IO也是一种任务。 | ||
* 实现任何计算与通讯关系非常复杂的高性能高并发的后端服务。 | ||
* 构建服务网格(service mesh)系统。 | ||
* 构建微服务系统。 | ||
* 项目内置服务治理与负载均衡等功能。 | ||
|
||
#### 编译和运行环境 | ||
|
@@ -120,15 +121,10 @@ int main() | |
* 任何任务都会在callback之后被自动内存回收。如果创建的任务不想运行,则需要通过dismiss方法释放。 | ||
* 任务中的数据,例如网络请求的resp,也会随着任务被回收。此时用户可通过``std::move()``把需要的数据移走。 | ||
* SeriesWork和ParallelWork是两种框架对象,同样在callback之后被回收。 | ||
* 如果某个series是parallel的一个分支,则将在其所在parallel的callback之后再回收。 | ||
* 项目中不使用``std::shared_ptr``来管理内存。 | ||
|
||
#### 更多设计文档 | ||
持续更新中…… | ||
|
||
|
||
#### Authors | ||
|
||
* **Xie Han** - *[[email protected]](mailto:[email protected])* | ||
* **Wu Jiaxu** - *[[email protected]](mailto:[email protected])* | ||
* **Wang Zhulei** - *[[email protected]](mailto:[email protected])* - Kafka Protocol Implementation | ||
* **Li Yingxin** - *[[email protected]](mailto:[email protected])* | ||
# 使用中有疑问? | ||
可以先查看[FAQ](https://github.com/sogou/workflow/issues/170)和[issues](https://github.com/sogou/workflow/issues)列表,看看是否能找到答案。 | ||
非常欢迎将您使用中遇到的问题发送到[issues](https://github.com/sogou/workflow/issues),我们将第一时间进行解答。同时更多的issue对新用户也会带来帮助。 | ||
也可以通过QQ群:``618773193`` 联系我们。 |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
|
@@ -35,10 +35,10 @@ int main() | |
* To implement **client/server on user-defined protocol** and build your own **RPC system**. | ||
* [srpc](https://github.com/sogou/srpc) is based on it and it is an independent open source project, which supports srpc, brpc and thrift protocols. | ||
* To build **asynchronous workflow**; support common **series** and **parallel** structures, and also support any **DAG** structures. | ||
* As a **parallel programming tool**. In addition to **networking tasks**, Sogou C++ Workflow also includes **the scheduling of computing tasks**. All types of tasks can be put into **the same** flow. | ||
* As a **parallel computing tool**. In addition to **networking tasks**, Sogou C++ Workflow also includes **the scheduling of computing tasks**. All types of tasks can be put into **the same** flow. | ||
* As a **asynchronous file IO tool** in `Linux` system, with high performance exceeding any system call. Disk file IO is also a task. | ||
* To realize any **high-performance** and **high-concurrency** back-end service with a very complex relationship between computing and networking. | ||
* To build a **service mesh** system. | ||
* To build a **micro service** system. | ||
* This project has built-in **service governance** and **load balancing** features. | ||
|
||
#### Compiling and running environment | ||
|
@@ -85,6 +85,7 @@ int main() | |
* [About connection context](docs/en/about-connection-context.md) | ||
* Built-in protocols | ||
* [Asynchronous MySQL client:mysql\_cli](docs/en/tutorial-12-mysql_cli.md) | ||
* [Asynchronous Kafka client: kafka\_cli](docs/en/tutorial-13-kafka_cli.md) | ||
|
||
#### System design features | ||
|
||
|
@@ -128,14 +129,10 @@ Memory reclamation mechanism | |
* Every task will be automatically reclaimed after the callback. If a task is created but a user does not want to run it, the user needs to release it through the dismiss method. | ||
* Any data in the task, such as the response of the network request, will also be recycled with the task. At this time, the user can use `std::move()` to move the required data. | ||
* SeriesWork and ParallelWork are two kinds of framework objects, which are also recycled after their callback. | ||
* When a series is a branch of a parallel, it will be recycled after the callback of the parallel that it belongs to. | ||
* This project doesn’t use `std::shared_ptr` to manage memory. | ||
|
||
#### More design documents | ||
|
||
To be continued... | ||
|
||
## Authors | ||
|
||
* **Xie Han** - *[[email protected]](mailto:[email protected])* | ||
* **Wu Jiaxu** - *[[email protected]](mailto:[email protected])* | ||
* **Li Yingxin** - *[[email protected]](mailto:[email protected])* |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Oops, something went wrong.