zenaton/zenaton-php

此包已被废弃,不再维护。未建议替代包。

Zenaton PHP 库

0.6.1 2019-10-31 08:58 UTC

This package is auto-updated.

Last update: 2020-07-20 14:42:04 UTC


README

⚠️ 该仓库已被废弃。

58254828-e5176880-7d6b-11e9-9094-3f46d91faeee.png
开发者异步作业管理器,简单易用
探索文档
网站 · PHP 示例 · PHP 教程

Packagist CircleCI License

Zenaton PHP 库

Zenaton 帮助开发者轻松运行、监控和编排工作进程,无需管理队列系统。此外,监控仪表板实时显示任务执行情况,并帮助处理错误。

Zenaton PHP 库允许您使用 Zenaton 平台编码和启动任务,以及将工作流作为代码编写。您可以在 Zenaton 上注册账户,并通过 PHP 教程 学习。

PHP 文档

您可以在 Zenaton 网站 上找到所有详细信息。

目录

入门

安装

安装 Zenaton 代理

要安装 Zenaton 代理,请运行以下命令

curl https://install.zenaton.com/ | sh

然后,您需要您的代理监听您的应用程序。为此,您需要您的 应用程序 IDAPI 令牌。您可以在 您的 Zenaton 账户 上找到这两者。

zenaton listen --app_id=YourApplicationId --api_token=YourApiToken --app_env=YourApplicationEnv

安装库

要将库的最新版本添加到您的项目,请运行以下命令

composer require zenaton/zenaton-php

框架集成

如果您使用 LaravelSymfony,请参阅我们的专用文档以开始使用

快速入门

客户端初始化

首先,您需要初始化客户端。为此,您需要您的 应用程序 IDAPI 令牌。您可以在 您的 Zenaton 账户 上找到这两者。

然后,初始化您的 Zenaton 客户端

Zenaton\Client::init('YourApplicationId', 'YourApiToken', 'YourApplicationEnv');

执行后台任务

在Zenaton中,后台任务是一个实现Zenaton\Interfaces\TaskInterface接口的类。

让我们先实现一个简单的任务,打印一些内容,并返回一个值

use Zenaton\Interfaces\TaskInterface;
use Zenaton\Traits\Zenatonable;

class HelloWorldTask implements TaskInterface
{
    public function handle()
    {
        echo "Hello World\n";

        return mt_rand(0, 1);
    }
}

现在,当你想要将这个任务作为后台任务运行时,你需要执行以下操作

(new HelloWorldTask())->dispatch();

这就是开始所需的所有内容。有了这些,你可以运行许多后台任务。然而,Zenaton真正的力量在于能够编排这些任务。下一节将向您介绍工作编排。

编排后台任务

工作编排允许您以简单的方式编写复杂的企业工作流程。您可以按顺序、并行执行任务,根据先前任务的结果进行条件执行,甚至可以使用循环重复某些任务。

我们撰写了一些关于工作编排用例的文章,您可以通过查看这些文章来了解人们如何使用工作编排。

使用工作流程

在Zenaton中,工作流程是一个实现Zenaton\Interfaces\WorkflowInterface接口的类。

我们将实现一个非常简单的工作流程

首先,它将执行HelloWorld任务。第一个任务的结果将用于通过一个if语句来做出条件。当返回的值大于0时,我们将执行一个名为FinalTask的第二个任务。否则,我们不会做其他任何事情。

需要记住的一个重要事项是,您的实现工作流程必须是无状态的。您可以在我们的文档中了解更多信息。

实现看起来是这样的

use Zenaton\Interfaces\WorkflowInterface;
use Zenaton\Traits\Zenatonable;

class MyFirstWorkflow implements WorkflowInterface
{
    use Zenatonable;

    public function handle()
    {
        $n = (new HelloWorldTask())->execute();
        if ($n > 0) {
            (new FinalTask())->execute();
        }
    }
}

现在,您的实现工作流程已经完成,您可以通过调用dispatch方法来执行它

(new MyFirstWorkflow())->dispatch();

如果您真的想运行这个示例,您需要实现FinalTask任务。

工作流程中还有许多其他可用的功能,以确保编排得当。您可以在我们的文档中了解更多。

获取帮助

需要帮助吗?请通过Zenaton上的聊天联系我们。

发现了错误?您可以在GitHub上创建一个问题