PHPackages                             wilson\_yang/sendtask - PHPackages - PHPackages  [Skip to content](#main-content)[PHPackages](/)[Directory](/)[Categories](/categories)[Trending](/trending)[Leaderboard](/leaderboard)[Changelog](/changelog)[Analyze](/analyze)[Collections](/collections)[Log in](/login)[Sign up](/register)

1. [Directory](/)
2. /
3. [Utility &amp; Helpers](/categories/utility)
4. /
5. wilson\_yang/sendtask

ActiveLibrary[Utility &amp; Helpers](/categories/utility)

wilson\_yang/sendtask
=====================

v1.0.0(7y ago)2251PHP

Since Dec 3Pushed 7y ago1 watchersCompare

[ Source](https://github.com/yangzuwei/async-task)[ Packagist](https://packagist.org/packages/wilson_yang/sendtask)[ RSS](/packages/wilson-yang-sendtask/feed)WikiDiscussions dev Synced yesterday

READMEChangelogDependencies (1)Versions (3)Used By (0)

async-task
==========

[](#async-task)

simple task tools by swoole

客户端有两种实现方式：

1. 使用 swoole client 实现
2. 使用 stream\_socket\_client 实现

原理
==

[](#原理)

通过Swoole 的TCP Server 接收客户端发过来的消息，消息都是经过序列化的，用 PHP\_EOL 拼接，在 Server 工作进程中再进行拆分。 按照消息类型（目前只支持`AbstractTask`类和linux系统shell类命令）分别运行。 DB采用Mysql PDO 实现，配置了持久化。 Server中的DB资源都是在运行时进行注入的，运行时可以复用一个DB连接，减少了资源消耗。

用法
==

[](#用法)

启动server
--------

[](#启动server)

分别执行`bin`目录下对应的shell脚本即可，

- 启动 `./bin/start.sh`
- 关闭 `./bin/stop.sh`
- 重启 `./bin/restart.sh`
- 热更新 `./bin/reload.sh`

配置文件
----

[](#配置文件)

都放在`config`文件夹中，客户端和服务端可以分别部署在不同机器上，只需将`swoole.php`文件中的`ip`字段按照网络情况相应改写即可。

添加任务
----

[](#添加任务)

在其他地方使用的时候只需要类似如下方式

方式一：执行某个外部命令(推荐方式) 建议在各种MVC框架下使用**命令行**形式去执行有关任务，可以避免再去重新学习适应当前这个框架中的逻辑。 执行的外部命令需要进行审核，目前未进行权限和用户的相关处理 （以免有些未经过审核的shell运行，危及系统安全，例如`rm -rf /`），

使用方式

```
