zenaton/zenaton-laravel

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

轻松在 Laravel 应用中使用 Zenaton 进行后台任务

0.1.2 2019-10-02 16:38 UTC

This package is auto-updated.

Last update: 2020-07-28 14:57:14 UTC


README

⚠️ 此仓库已废弃。

58254828-e5176880-7d6b-11e9-9094-3f46d91faeee.png
开发人员使用的简单异步任务管理器
探索文档
网站 · PHP 示例 · PHP 教程

Packagist License

Zenaton for Laravel

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

Zenaton Laravel 包允许您使用 Zenaton 平台在 Laravel 项目中编码和启动任务,以及以代码的形式编写工作流。您可以在 Zenaton 上注册账户,并完成 PHP 教程

PHP 文档

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

目录

入门

安装

安装 Zenaton 代理

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

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

然后,您需要让代理监听您的应用程序。为此,您需要 应用程序 IDAPI 令牌。您可以在 您的 Zenaton 账户 中找到它们。

将它们放入您的 .env 文件中

ZENATON_APP_ID=YourAppId
ZENATON_API_TOKEN=YourApiToken
ZENATON_APP_ENV=dev

现在,要使代理监听,请运行以下命令

zenaton listen --laravel

安装 Laravel 包

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

composer require zenaton/zenaton-laravel

然后,使用以下命令发布默认配置文件

php artisan vendor:publish --tag=zenaton-config

快速入门

执行后台任务

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

让我们先实现一个打印一些内容并返回值的第一个任务。您可以使用 zenaton:make:task artisan 命令生成任务

php artisan zenaton:make:task HelloWorldTask

打开为您生成的 app/Zenaton/Tasks/HelloWorldTask.php 文件,并实现 ::handle() 方法,如下所示

namespace App\Zenaton\Tasks;

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

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

        return mt_rand(0, 1);
    }
}

现在,如果您想将此任务作为后台作业运行,您需要执行以下操作

(new \App\Zenaton\Tasks\HelloWorldTask())->dispatch();

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

编排后台作业

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

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

使用工作流程

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

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

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

需要记住的一个重要事项是,您的实现必须必须是幂等的。您可以在我们的文档中了解更多。

让我们使用相应的artisan命令生成工作流程类,以便能够对其工作

php artisan zenaton:make:workflow MyFirstWorkflow

打开为您生成的app/Zenaton/Workflows/MyFirstWorkflow.php文件,并实现以下::handle()方法

namespace App\Zenaton\Workflows;

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 \App\Zenaton\Workflows\MyFirstWorkflow())->dispatch();

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

工作流程中有许多其他功能可用于正确完成编排。您可以在我们的文档中了解更多。

获取帮助

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

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