laravel - PHP Laravel 5 CLI 终止信号覆盖
问题描述
PHP Laravel 在被终止信号终止时是否执行任何清理?
例如下面的代码:
class MyCommand extends Command
{
protected $signature = 'get:help';
protected $description = 'I need help';
public function handle()
{
pcntl_async_signals(true);
pcntl_signal(SIGTERM, [$this, "gracefullyShutdown"]);
pcntl_signal(SIGINT, [$this, "gracefullyShutdown"]);
// Do some procedure task here, no loop.
}
public function gracefullyShutdown()
{
// Do I need to do any clean up?
//exit(0);
}
}
因为终止信号函数被覆盖,所以handle()
继续运行。
如果我想打电话exit(0)
,gracefullyShutdown()
我需要释放内存还是做其他事情exit(0)
?
或者我可以调用原始终止函数之类super.terminate()
的吗?(super.terminate()
是伪代码)
我读到了如何优雅地停止 Laravel CLI 命令。但他的方法是有一个while(true)
循环,打破并执行剩余的代码。我想停下来的地方/return
中的任何地方handle()
。
解决方案
您是否考虑过仅刷新/破坏会话?
推荐阅读
- symfony - services.yaml 配置 - 没有命名空间的自动装配
- javascript - 为什么这个 vue 转换没有按预期工作?
- r - 根据条件拆分为 list(),省略 False 元素
- powershell - 使用 Invoke-CimMethod 'Activate' 来激活 Windows 电源计划,而不是我得到 Invalid Class 我做错了什么?
- spring-boot - 在 Gradle 中使用 YAML 中的环境变量
- python - 将图像上传到 S3 并在 Lambda 中使用 Python 进行操作 - 最佳实践
- c# - 在 c# 中迭代队列,而每次迭代的出队
- c# - 微软的ServiceProvider类需要重新赋值,否则返回null?
- kentico - Kentico 11 API 能否以与使用 Kentico Cloud 相同的方式使用?
- java - 通过 JAXB 解组重用元素/类