eo/subway

基于核反应堆的PHP后台任务处理

v0.3.0 2014-06-13 20:18 UTC

This package is auto-updated.

Last update: 2024-09-24 00:29:47 UTC


README

Build Status Scrutinizer Code Quality Code Coverage Total Downloads Latest Stable Version

基于核反应堆的PHP后台任务处理。

特性

  • 延迟任务
  • 重复任务
  • Resque 兼容数据库
  • 可配置日志记录
  • 默认支持 composer 和 symfony 应用

要求

  • 以 POSIX 为导向的操作系统(由于 pcntl 依赖,不支持 Windows)
  • PHP >= 5.4(需要 pcntl
  • Redis

安装

在 composer.json 中添加 Subway

{
    "require": {
        "eo/subway": "dev-master"
    }
}

现在运行以下命令告诉 composer 下载包

$ php composer.phar update eo/subway

Composer 将将所有内容安装到项目的 vendor 目录中。

使用方法

创建任务类

要创建一个新任务,扩展您的任务类到 Subway\Job 并实现抽象方法 perform

<?php

use Subway\Job;

class MyAwesomeJob extends Job
{
    public function perform()
    {
        // do something here
    }
}

排队任务

<?php

use Predis\Client;
use Subway\Factory;

$redis  = new Client();
$subway = new Factory($redis);

$message = new Message('default', 'Subway\Tests\Job\Md5Job', array('hello' => 'world'));
$id = $this->factory->enqueue($message);

echo "Job $id enqueued!";

如果需要仅排队消息一次,使用 enqueueOnce 方法。

执行任务

要执行任务,您可以使用此库附带的可执行文件(查看 bin 目录)或从以下链接下载最新的 .phar 归档: http://eymengunay.github.io/subway/downloads/subway-latest.phar

一旦找到二进制文件或下载了 .phar 归档,请使用以下命令启动您的工人

php subway.phar worker

要查看所有可用选项和参数,请查看命令帮助

php subway.phar worker -h

命令

报告问题或功能请求

与此库相关的问题和功能请求在 Github 问题跟踪器中跟踪:https://github.com/eymengunay/subway/issues