askedio/laravel-event-worker

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

Laravel 事件工作器

0.0.1 2016-05-20 01:48 UTC

This package is not auto-updated.

Last update: 2020-01-28 20:31:55 UTC


README

使用多个工作进程、线程、延迟和节流触发 Laravel 事件。

minimum-stability: dev

此包使用了 react-thread-pool,这是一个开发版本,此包本身也非常实验性。

要求

  • Laravel 5.2.*
  • PHP >= 5.4,仅在 7 上进行过测试。
  • pcntl
  • Linux/Unix

安装

使用 composer 安装

composer require askedio/laravel-event-worker

config/app.php 中注册 provider

Askedio\EventWorker\Providers\LaravelEventWorkerServiceProvider::class,

发布配置。

php artisan vendor:publish

使用方法

默认配置使用 App\Events\FetchTwitterEvent 事件,创建它或编辑 configs/event-workers.php 来使用您的事件。

创建事件。

php artisan make:event FetchTwitter

编辑 app/Events/FetchTwitterEvent.php 并使其执行某些操作,例如...

public function __construct($iteration)
{
    echo "Hello world.".PHP_EOL;
}

当然,您会在监听器中放置一些内容并创建一个适当的事件,但您已经明白了这个思路。

运行它。

php artisan events:serve

配置

configs/event-workers.php 中,您定义要运行的事件。

return [
  'twitter' => [              // name
      'delay'    => 1,        // delay between creating threads
      'throttle' => '1:1',    // throttle for creating threads
      'workers'  => 1,        // number of workers to create
      'threads'  => [
          'min'     => 1,     // minium threads per worker
          'max'     => 3,     // maximum threads per worker
          'timeout' => 30,    // thread time out
      ],
      'class' => \App\Events\FetchTwitterEvent::class, // your event class
  ],
];

测试

是的。我没有时间做那件事。

贡献

那会很棒。发送一个 PR。