croustibat / filament-jobs-monitor
用于 FilamentPHP 所有驱动程序的背景任务监控,类似于 Horizon
2.5.0
2024-07-04 09:49 UTC
Requires
- php: ^8.1|^8.2|^8.3
- filament/filament: ^3.0
- illuminate/contracts: ^10.0|^11.0
- spatie/laravel-package-tools: ^1.13.5
Requires (Dev)
- laravel/pint: ^1.0
README
这是一个用于监控 FilamentPHP 背景任务的包。它受到 Laravel Horizon 的启发,并与所有驱动程序兼容。


安装
安装前请检查您的 filamentPHP 版本
通过 composer 安装此包
composer require croustibat/filament-jobs-monitor
使用以下命令发布和运行迁移
php artisan vendor:publish --tag="filament-jobs-monitor-migrations"
php artisan migrate
使用方法
配置
可以使用以下命令发布全局插件配置
php artisan vendor:publish --tag="filament-jobs-monitor-config"
这是发布配置文件的内容
return [ 'resources' => [ 'enabled' => true, 'label' => 'Job', 'plural_label' => 'Jobs', 'navigation_group' => 'Settings', 'navigation_icon' => 'heroicon-o-cpu-chip', 'navigation_sort' => null, 'navigation_count_badge' => false, 'resource' => Croustibat\FilamentJobsMonitor\Resources\QueueMonitorResource::class, ], 'pruning' => [ 'enabled' => true, 'retention_days' => 7, ], 'queues' => [ 'default' ], ];
注意:由于没有通用的方法来检索所有使用的队列,因此有必要定义它们以获取所有待处理作业。
扩展模型
有时扩展模型以添加一些自定义方法是有用的。您可以通过创建自己的模型来扩展模型
$ php artisan make:model MyQueueMonitor
然后您可以通过添加自己的方法来扩展模型
<?php namespace App\Models; use \Croustibat\FilamentJobsMonitor\Models\QueueMonitor as CroustibatQueueMonitor; class MyQueueMonitor extends CroustibatQueueMonitor {}
使用 Filament 面板
如果您正在使用 Filament 面板,您可以将插件注册到面板配置中。这将注册插件资源,并允许您使用可选的链式方法设置配置。
例如,在您的 app/Providers/Filament/AdminPanelProvider.php
文件中
<?php use \Croustibat\FilamentJobsMonitor\FilamentJobsMonitorPlugin; ... public function panel(Panel $panel): Panel { return $panel ->plugins([ FilamentJobsMonitorPlugin::make() ]); }
使用方法
只需运行一个后台任务,然后转到路由 /admin/queue-monitors
即可查看作业。
示例
转到 示例 文件夹查看作业示例文件。
然后您可以使用以下代码调用您的作业
public static function table(Table $table): Table { return $table // rest of your code ... ->bulkActions([ BulkAction::make('export-jobs') ->label('Background Export') ->icon('heroicon-o-cog') ->action(function (Collection $records) { UsersCsvExportJob::dispatch($records, 'users.csv'); Notification::make() ->title('Export is ready') ->body('Your export is ready. You can download it from the exports page.') ->success() ->seconds(5) ->icon('heroicon-o-inbox-in') ->send(); }) ]) }
启用导航
// AdminPanelProvider.php ->plugins([ // ... FilamentJobsMonitorPlugin::make() ->enableNavigation(), ])
或者您可以使用闭包来只为特定用户启用导航
// AdminPanelProvider.php ->plugins([ // ... FilamentJobsMonitorPlugin::make() ->enableNavigation( fn () => auth()->user()->can('view_queue_job') || auth()->user()->can('view_any_queue_job)'), ), ])
变更日志
请参阅 变更日志 了解最近更改的详细信息。
贡献
请参阅 贡献指南 了解详细信息。
安全漏洞
请参阅 我们的安全策略 了解如何报告安全漏洞。
鸣谢
许可证
MIT 许可证 (MIT)。请参阅 许可证文件 了解更多信息。