askedio / laravel-event-worker
此包已废弃且不再维护。未建议替代包。
Laravel 事件工作器
0.0.1
2016-05-20 01:48 UTC
Requires
- php: >=5.5.9
- evenement/evenement: dev-master
- graham-campbell/throttle: ^5.2
- laravel/framework: 5.2.*
- react/event-loop: 0.4.1
- react/react: ^0.4.2
- rogerwaters/react-thread-pool: dev-master
- thujohn/twitter: ^2.2
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。