evilnet / queue-jobs-bundle
类似于Laravel的简单队列系统,适用于Symfony
1.0.1
2018-07-07 22:50 UTC
Requires
- php: >=5.6
- predis/predis: ^1.1
- symfony/event-dispatcher: ^3.4
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文件。