通过 Artisan 调度 Laravel 任务
发布于 作者: Paul Redmond
Laravel Artisan Dispatchable 是由 Spatie 开发的包,用于将队列任务注册为 Artisan 命令。 Laravel 调度程序可以调度不阻塞调度程序的队列任务,但这种方法有一个缺点
您必须在使用 Artisan 命令 + 阻塞调度程序以及使用任务 + 不阻塞调度程序之间做出选择。
使用我们的包,您不再需要做出这种选择。当让您的任务实现 Spatie 的
ArtisanDispatchable
时,您不会阻塞调度程序,并且仍然可以通过 Artisan 执行逻辑。
该包的工作原理是,您实现该包的 ArtisanDispatchable
接口,然后您的任务将作为 Artisan 命令可用。
use Illuminate\Contracts\Queue\ShouldQueue;use Spatie\ArtisanDispatchable\Jobs\ArtisanDispatchable; class ProcessPodcast implements ShouldQueue, ArtisanDispatchable{ public function handle() { // perform some work... }}
这个包的妙处在于,它带有约定,使您的任务无需任何额外工作即可用于 Artisan,使用类名的连字符分隔形式。
# Execute via Artisanphp artisan process-podcast # Put your job on the queue instead of executing immediatelyphp artisan process-podcast --queued # Eloquent models as constructor arguments# Podcast model instance as a constructor argumentphp artisan process-podcast --podcast="1234"
虽然这个包有命令名称约定,但它允许您覆盖命令名称和描述。
您可以在 GitHub 上了解有关该包的更多信息,获取完整的安装说明,并查看 源代码。 此外,请查看 Freek Van der Herten 发布的 公告帖子。