PHPackages                             davidyan/asyntask - 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. [Queues &amp; Workers](/categories/queues)
4. /
5. davidyan/asyntask

ActiveLibrary[Queues &amp; Workers](/categories/queues)

davidyan/asyntask
=================

A lightweight asynchronous queue manager, supporting real-time, timing, long-term, periodic tasks.

1.0.0(9y ago)14324MITPHPPHP &gt;=5.3.0

Since Mar 8Pushed 8y ago2 watchersCompare

[ Source](https://github.com/spetacular/asyntask)[ Packagist](https://packagist.org/packages/davidyan/asyntask)[ RSS](/packages/davidyan-asyntask/feed)WikiDiscussions master Synced 3w ago

READMEChangelogDependenciesVersions (3)Used By (0)

PHP异步任务队列管理器asyntask
====================

[](#php异步任务队列管理器asyntask)

asyntask是一个轻量级异步任务队列管理器，支持实时，定时，长时和周期任务。

项目由来
----

[](#项目由来)

本项目最初用于通知推送。例如用户发布评论，需要推送一条push给原作者。而到苹果的服务器的请求时间较长，如果等待苹果服务器的返回结果，则整个发布评论的接口的响应时间就太长了。因为推送push早1秒晚1秒对用户基本没影响，所以当用户发布评论时，只要数据到数据库，即可返回。与此同时创建一条异步任务，在1秒内给用户推送push。这样既保证了接口的响应速度，又不影响用户体验。该项目已经在线上环境运行1年多，执行了累计8千万条命令，运行稳定。

优点
--

[](#优点)

- 异步执行
- 集成管理后台，可视化操作
- 代码集成，可编程

缺点
--

[](#缺点)

并非真正实时，秒级误差。

安装
==

[](#安装)

下载源码
----

[](#下载源码)

直接使用：

```
git clone https://github.com/spetacular/asyntask.git

```

命令下载到本地。

也可以点击  下载最新内容的压缩包，然后解压。

通过 composer 来安装
---------------

[](#通过-composer-来安装)

在你的 composer 项目中的 composer.json 文件中，添加这部分：

```
   {
       "require": {
           "davidyan/asyntask": ">=1.0"
       }
   }

```

然后执行`composer install`。调用示例如下：

```
include './vendor/autoload.php';
$task = new AsynTask\Task();

//添加单次任务
$name = '单次任务';
$cmd = 'php abcd.php';
$params = array(
	'params'=>1
);
$task->add_once_task($name,$cmd,$params);

```

配置
==

[](#配置)

1.asyntask的数据默认存储在Mysql数据库里，因此需要更改config.php里的配置：

```
	'DB_HOST'=>'127.0.0.1',
	'DB_NAME' => 'asyntask',
	'DB_USER' => 'root',
	'DB_PWD' => '',
	'DB_PORT' => '3306',
	'DB_CHARSET' => 'utf8mb4',

```

2.导入数据表 将resource文件夹里的db.sql导入数据库中。

3.配置健康检查脚本 run.sh定期检查异步任务的运行状况，如果挂了，cron\_asyn\_task.php脚本。

```
chmod +x run.sh

```

然后配置CronTab。运行`crontab -e`，然后添加一行：

```
* * * * *  path-to/run.sh  > /dev/null 2>&1

```

使用方式
====

[](#使用方式)

管理后台
----

[](#管理后台)

自带管理后台，可以轻松添加、编辑、删除、搜索任务。代码在，请自行部署。 [![管理后台截图](https://github.com/spetacular/asynadmin/raw/master/asynadmin.jpeg)](https://github.com/spetacular/asynadmin/raw/master/asynadmin.jpeg)

编程方式
----

[](#编程方式)

可以集成到项目中，完整使用示例见`test.php`。 例如添加周期任务：

```
$name = '周期任务';
$cmd = 'php abc.php';
$params = array(
	'params'=>1
);
$timeOptions = array(
	'day'=>1,
	'hour'=>2,
	'minute'=>3
);
$task->add_loop_task($name,$cmd,$params,$timeOptions);

```

周期任务示例
------

[](#周期任务示例)

每天执行：day 1 hour 0 minute 0 每天零点执行

每小时执行：day 0 hour 1 minute 5 每小时的5分执行

每隔若干分钟执行：day 0 hour 0 minute 5 每隔5分钟执行

asyntask
========

[](#asyntask)

A lightweight asynchronous queue manager, supporting real-time, timing, long-term, periodic tasks.

###  Health Score

29

—

LowBetter than 57% of packages

Maintenance20

Infrequent updates — may be unmaintained

Popularity16

Limited adoption so far

Community12

Small or concentrated contributor base

Maturity59

Maturing project, gaining track record

 Bus Factor1

Top contributor holds 71% of commits — single point of failure

How is this calculated?**Maintenance (25%)** — Last commit recency, latest release date, and issue-to-star ratio. Uses a 2-year decay window.

**Popularity (30%)** — Total and monthly downloads, GitHub stars, and forks. Logarithmic scaling prevents top-heavy scores.

**Community (15%)** — Contributors, dependents, forks, watchers, and maintainers. Measures real ecosystem engagement.

**Maturity (30%)** — Project age, version count, PHP version support, and release stability.

###  Release Activity

Cadence

Unknown

Total

1

Last Release

3393d ago

### Community

Maintainers

![](https://www.gravatar.com/avatar/5eb0ccb16466dcef9749d36fd3852598a0279980c91ae25d6d95dd7f265fae3d?d=identicon)[davidyan](/maintainers/davidyan)

---

Top Contributors

[![hotbody-david](https://avatars.githubusercontent.com/u/18479986?v=4)](https://github.com/hotbody-david "hotbody-david (22 commits)")[![uexam135](https://avatars.githubusercontent.com/u/160711669?v=4)](https://github.com/uexam135 "uexam135 (9 commits)")

---

Tags

phpqueue

### Embed Badge

![Health badge](/badges/davidyan-asyntask/health.svg)

```
[![Health](https://phpackages.com/badges/davidyan-asyntask/health.svg)](https://phpackages.com/packages/davidyan-asyntask)
```

###  Alternatives

[league/geotools

Geo-related tools PHP 7.3+ library

1.4k5.5M29](/packages/league-geotools)[illuminate/bus

The Illuminate Bus package.

6045.5M504](/packages/illuminate-bus)[uecode/qpush-bundle

Asynchronous processing for Symfony using Push Queues

1672.5M2](/packages/uecode-qpush-bundle)[jayazhao/think-queue-rabbitmq

为 ThinkPHP5.1 队列增加 RabbitMQ 驱动

141.5k](/packages/jayazhao-think-queue-rabbitmq)

PHPackages © 2026

[Directory](/)[Categories](/categories)[Trending](/trending)[Changelog](/changelog)[Analyze](/analyze)
