evilnet/queue-jobs-bundle

类似于Laravel的简单队列系统,适用于Symfony

1.0.1 2018-07-07 22:50 UTC

This package is auto-updated.

Last update: 2024-08-29 04:20:13 UTC


README

现在在Symfony 3.x中的Laravel风格的作业系统!

关于

你是否厌倦了复杂的rabbitmq配置?你是否希望像在Laravel中一样简单工作?这就是这个包的作用!我创建它是为了处理电商项目的简单任务,但它也可能对你有用。

安装

composer require evilnet/queue-jobs-bundle

安装后

在AppKernel.php中启用包

 $bundles = [
                new Evilnet\QueueJobsBundle\QueueJobsBundle(),
            ];

并将这些参数添加到你的parameters.yml文件中

queue_redis_ip: 127.0.0.1 (usually)
queue_redis_port: 6379 (usually)
default_queue_name: default

这就完成了!你可以在终端中运行两个命令来测试它

bin/console worker:start default

然后演示分发器

bin/console dispatch:test

你应该在终端中看到带有工作者的Hello World

示例代码

示例作业类

<?php

namespace Evilnet\QueueJobsBundle\ExampleJob;

use Evilnet\QueueJobsBundle\Dispatcher\DispatchableInterface;

class HelloWorld implements DispatchableInterface
{

    public $test_value;

    public function __construct()
    {
        $this->test_value = 'Hello from queue!';
    }

    public function execute(): bool
    {
        echo $this->test_value."\n";
        return true;
    }
}

分发作业示例

<?php

namespace Evilnet\QueueJobsBundle\Command;

use Evilnet\QueueJobsBundle\Dispatcher\DispatcherInterface;
use Evilnet\QueueJobsBundle\ExampleJob\HelloWorld;

class ExampleService
{
    protected $dispatcher;

    public function __construct(DispatcherInterface $dispatcher)
    {
        $this->dispatcher = $dispatcher;
    }

    public function test()
    {
        $hello_world_job = new HelloWorld();
        $this->dispatcher->dispatch($hello_world_job, 'default'); //Queue name. You can use configured parameter here
    }
   
}

坦白说... 就是这些了!

优先级待办事项

  • 测试
  • 为Bundle提供更好的配置,你可以选择适配器等。
  • 作业超时。执行后15分钟等。
  • 更多适配器。目前只有redis可用

测试

即将推出!

许可证

本项目使用MIT许可证 - 有关详情,请参阅LICENSE.md文件。