我需要在一个使用Laravel构建的应用程序上安排一些任务,我想在这些任务完成后发送一个松弛通知。
Laravel提供了一个“after”钩子(https://laravel.com/docs/5.8/scheduling#task-hooks),所以我可以这样做:
$schedule->command('mycommand')
->daily()
->after(function () {
// How can I access the command's name and output from here?
});
我试过使用$this->output
,但$this
指向App\Console\Kernel
,它显示为Undefined property: App\Console\Kernel::$output
。我也试过向闭包传递一个参数,但我认为我需要指定一个类型,但我不知道,文档也不是很清楚。
有人知道怎么做吗?
先谢谢你了!
3条答案
按热度按时间tv6aics11#
假设你能指挥这个
在您的内核中,可以将输出发送到一个临时文件,然后读取该文件并发送
你会得到
也许这将是时间重新打开这个建议https://github.com/laravel/ideas/issues/122#issuecomment-228215251
dgsult0t2#
你的命令会生成什么样的输出?是命令行还是只是一个你试图传递给
after()
的变量?或者,在命令的
handle()
方法中,您可以在所有代码执行后调用所需的命令,甚至可以向命令传递参数。您可以使用Artisan来执行此操作
wsewodh23#
在应用服务提供程序中为控制台计划事件定义宏:
如果你想要slack日志,即使没有输出,也可以这样使用它:
如果你只想在有输出的情况下使用slack日志,可以这样使用:
我在Laravel 9. YMMV上。