Laravel 应用程序关闭时会触发什么事件?

2023-12-14

具体来说,我正在做的是在我的 AppServiceProvider->boot() 方法中,我正在创建一个单例类,如下所示:

class AppServiceProvider extends ServiceProvider
{
    public function boot()
    {
        $this->app->singleton('App\Support\PushNotificationHelper', function ($app) {
            return new PushNotificationHelper();
        });  
     }
 }

我用于将通知推送到移动应用程序的队列工作人员作业需要帮助程序类。当移动设备是 Apple 设备时,我需要建立一个卷曲连接,并让该连接在队列工作线程作业的生命周期之外持续存在。这就是为什么我使用单例来保持连接,如下所示:

class PushNotificationHelper {
    protected $http2Connection;
    protected $http2Expire ;

    public function getConnection($options) {
        $this->http2Connection = curl_init();
        curl_setopt_array($this->http2Connection, $options);
        return $this->http2Connection;
    }

Apple 声称如果我反复连接和断开连接,他们将发出拒绝服务 (DOS) 消息。我的应用程序实际上每小时发送 1000 条通知。当我使用连接时,我会检查错误,并在需要时关闭/重新打开连接,例如:

 curl_close($http2Connection);

不过,我想知道如何检测应用程序何时将永久关闭,以便我可以优雅地关闭连接。如果没有办法做到这一点,随着时间的推移,如果应用程序每天启动/停止几次,它是否会因为开放连接挂起而损害我的服务器,比如说运行几个月?

另一种选择可能是有一个curl选项来告诉连接在这么长时间后自动断开连接。 (我强制关闭并每 4 小时重新打开一次)所以如果我可以告诉连接至少在 5 小时后自动关闭,那么也许它会自我清理?


恕我直言,你可以尝试添加一个终止回调到您的应用程序实例,例如在AppServiceProvider, i.e.:

public function boot()
{
    $this->app->terminating(function () {
       // your terminating code here
    });
}
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Laravel 应用程序关闭时会触发什么事件? 的相关文章

  • 从 BitBucket 请求 OAuth 令牌

    在过去的 4 个小时里 我一直在尝试将 BitBucket 集成到我的应用程序中 但没有成功 在阅读的过程中BitBucket 的 RESTful API 文档 https confluence atlassian com display
  • 如何在 vue.js 中使用 SVG.js 插件?

    我在用svg js在我的 Laravel 项目中运行vue js 这就是我使用的方式svg js Step 1 安装svg js作为我的 vue 应用程序中的插件 import svgJs from svg js dist svg expo
  • Laravel 5.5 中的主从配置

    如何配置 Laravel 5 5 主从 MySQL 复制 我想分别在master和slave上进行写操作和读操作 可选 有没有办法在理想条件下进行连接池和打开连接的最大 最小数量 只需改变你的config database php文件包含读
  • 使用 cURL 从 shell 发布 4GB 文件

    我尝试将文件大小为 4GB 的文件发布到 REST API cURL 不会上传此大小的文件 而是 POST 内容长度为 0 的文件 curl v i d work large png H Transfer Encoding chunked
  • Curl 和 Php 5.3.3 中的 SSL 连接错误

    我的网站自 3 年来一直运行良好 代码如下 现在突然从 2 天开始出现以下错误 SSL 连接错误 在 Curl error 中 下面是我的代码
  • 在 Laravel 视图中使用 CSS?

    我刚刚开始学习 Laravel 并且可以掌握控制器和路由的基础知识 我的操作系统是 Mac OS X Lion 它位于 MAMP 服务器上 我的routes php代码 Route get function return View make
  • 表单请求中的 Laravel 数组验证

    我无法验证 Form Request 类中包含数组元素的字段 规则方法 public function rules return state gt required state 0 gt required state gt required
  • 此集合实例 Laravel 关系中不存在属性 [X]

    我在 Laravel 5 6 中使用了很多 Realtions 当我添加 phonebooks 时 我看到所有关系都工作正常 一切都很好 但是当我尝试在视图中显示它们时 我得到了属性在此集合上不存在的错误 这是关系代码 public fun
  • 使用 laravel 检查活动用户状态

    这是非常标准的登录功能和验证 效果很好 但我还想检查用户是否处于活动状态 我在用户表中设置了一列 并将 活动 设置为 0 或 1 public function post login input Input all rules array
  • 附加之前检查数据库中是否存在 ID

    我通过选择一个带有类别的数组json decode并将它们附加到文章中 public static function setArticleCategory Request request article Article where id r
  • Laravel 6:尚未设置外观根

    经过一段时间的努力 我已将我的网站从 Laravel 5 8 迁移到 Laravel 6作曲家更新我在网站上遇到此错误 并且仅使用命令PHP工匠 PHP Fatal error Uncaught RuntimeException A fac
  • 我可以在 Laravel 5.2 中创建一个继承自 User 的新类吗?

    我对 Laravel 还很陌生 使用的是迄今为止的最新版本 5 2 因此我遇到了以下困境 我知道 Laravel 附带了一个User开箱即用的类 但我想开发一个系统 在其中我可以有另外两种类型的用户 称为Researcher and Adm
  • 如何使用批处理脚本调用的curl 获取http post 请求的响应代码?

    我正在努力为从我们的工具之一发送 http post 请求提供支持 该工具基本上通过 http 请求执行作业 实现此目的的方法是该工具使用多个参数调用 RunScript bat 该脚本解析这些参数并在验证后发出curl post 请求 P
  • 使用 Laravel dusk 仅迁移一次

    根据到 数据库测试 文档 https laravel com docs 5 4 database testing resetting the database after each test我可以在每次测试后重置数据库 第一个选项 第二个选
  • @apply 在 Laravel Mix 中的 Vue 组件内不起作用

    我在 Laravel 中使用 Tailwind CSS 和 VueJS 组件 如下所示
  • Laravel:使用 Faker 播种多个独特的列

    介绍 怎么样 伙计们 我有一个关于模型工厂和多个独特列的问题 背景 我有一个名为 Image 的模型 该模型将语言支持存储在单独的模型中 图片文字 图片文字 has an image id栏 语言栏和文本栏 图片文字有一个约束MySQL那个
  • 使用 Mock 对 Laravel 5 Mail 进行单元测试

    有没有办法在 Laravel 5 中测试 Mail 尝试了我在互联网上看到的唯一合法的模拟示例 但它似乎只适用于 Laravel 4 下面的当前代码 mock Mockery mock Swift Mailer this gt app ma
  • 将 Laravel 集合/数组转换为 Javascript 数组

    我想将 Laravel 中的数组分配给 JavaScript 数组 我已经从我的AppServiceProvider和 json decoded 它像 View composer function view users Users all
  • Laravel Passport,通过密码客户端进行多个连接

    我无法理解如何使用 Laravel Passport 通过密码客户端为同一用户实现多个连接 我有一个移动应用程序 需要与基于 Laravel 的 API 进行通信 我的用户在首次启动应用程序时必须输入他们的login and passwor
  • 使用 Spring 的 REST 多部分混合请求(文件+json)

    我需要将一个文件和一个 json 一起发送到我的 Spring 控制器 我有以下控制器类 Controller RequestMapping perform public class PerformController RequestMap

随机推荐

  • 如何在 Propel 中使用 MySQL 函数

    我想选择 1 个月或更晚的记录 查询是 SELECT FROM foobar WHERE created at gt DATE SUB curdate INTERVAL 1 MONTH 在 Symfony 中使用 Propel 我会 c 新
  • 无法使用 vba vlookup 查找日期

    我有一个 Excel 工作表 其中 A 列包含日期 B 列包含相应的日期 例如 A2 01 01 14 且 B2 星期三 依此类推 我尝试使用示例 vba 代码检索 B2 中的日期 但我不断收到错误消息 运行时错误 1004 无法获取wor
  • 即使不打开设置应用程序,是否可以将 Settings.bundle 中的设置设为默认值

    我有一个带有 settings bundle 的 iPhone 应用程序 可以处理我的应用程序的各种设置 我可以在 root plist 文件中设置默认值 使用 DefaultValue 属性 但这些值仅在用户第一次打开设置应用程序时使用
  • SICP 3.52 延迟 CDR

    练习3 52 define sum 0 define accum x set sum x sum sum 1 define seq stream map accum stream enumerate interval 1 20 2 defi
  • 在 php 中打印到 Zebra 打印机

    正在寻找使用 RAW 端口 9100 从 php 网页打印到 zebra IP 打印机的正确代码 有谁知道这是否可行 我需要将 ZPL 格式输出的字符串直接发送到 ZM400 标签打印机 我到处搜索 找到的最接近的是 使用php直接打印到网
  • 如何使下拉菜单自动完成消失 onblur 或单击 jquery 外部?

    下面是被调用以在搜索框中显示自动完成功能的函数 我希望自动完成功能在模糊或单击搜索框外部时消失 请告诉我应该在此函数中添加什么以使自动完成功能消失点击外面时向下消失 function hideLoader sub cont fadeIn 1
  • password_hash 到底是如何工作的?

    我试图理解密码哈希值充分以便能够向审核员解释 根据我对答案的寻找 我了解到password hash 函数是一个包装器crypt 在阅读 PHP 手册时预定义常量我看到它使用PASSWORD BCRYPT作为默认整数值 基本上它使用CRYP
  • PDO SQLite查询零结果问题

    我环顾四周 但似乎找不到任何有关此的信息 我不确定这是我的代码的问题还是内存 SQLite 数据库和 PDO 的已知问题 基本上 在将单行插入内存 SQLite 数据库表后 我希望与插入项不匹配的查询返回零行 但是 以下代码给出了一行 fa
  • 是否可以将 DataTable 作为 TextBox 中的 AutoCompleteSource? (C#)

    是否可以将 DataTable 作为 TextBox 中的 AutoCompleteSource C Jared 是正确的 如果不进行一些操作 就无法直接绑定 以下是使用 LINQ 数据集扩展检索字段作为自动完成源的示例 DataTable
  • Windows MIrror 驱动程序 远程显示驱动程序 VNC 服务器 Windows 8

    我正在开发远程桌面服务器的驱动程序 像 UltraVNC 内部协议 之类的东西 首先我发现 Windows 8 不支持镜像驱动程序 作为远程显示驱动程序的 DDI 的唯一子集 1 这是否意味着我需要为 Windows 8 实施远程显示驱动程
  • JavaScript:输入按键

    早上好 I am using java script in each page to trigger the Enter key press Event inside the textbox It is working fine Now i
  • 通过 Azure Powershell 设置 Azure 网站的主机名

    我正在尝试使用 PowerShell 将主机分配给 Azure 网站实例 我已验证要添加的域 主机是否有效 甚至转到 Azure 门户以验证其将新域识别为有效 但由于某种原因 下面的脚本没有像我认为应该的那样设置主机名 当我在为主机名设置新
  • 在运行时自动从 PowerShell 作业中提取数据

    当我试图做一些很可能超出 PowerShell 范围的事情时 我似乎遇到了障碍 我有一个主窗体脚本 它协调了我的大部分功能 但我需要另一个脚本来打开侦听器 system Net Sockets Udpclient Receive 并在整个程
  • 在 AWS Lambda 上安装新字体

    我正在 AWS Lambda 上安装 Imagemagick 但 Imagemagick 通常使用的字体似乎未预安装 如何添加其他字体 以下是我刚刚使用 pandoc xelatex 在 AWS Lambda 上处理自定义字体的工作 我假设
  • 使用 GDB 更改 JVM 中的变量值

    目前我有一个简单的Java程序 public class Test public static void main String args boolean test true while test System out println He
  • JavaFX 中滑块拇指的坐标

    有一些方法可以知道滑块拇指的位置JavaFX Use getBoundsInParent and a lookup Bounds bounds slider lookup thumb getBoundsInParent 您可能需要apply
  • 错误:SQLSTATE[HY000] [2002] 没有这样的文件或目录

    我知道这类问题可能被问过几次 但它们都与 laravel 有关 在我的例子中 这是没有框架的普通 php 我有一个表单 可以从用户那里收集表单并将其保存到数据库中 但我不断收到有关 MYSQL 的错误Error SQLSTATE HY000
  • Laravel 和谷歌地图:foreach 纬度/经度显示标记或地图

    我有一个带有纬度和经度字段的表位置 对于每个位置 我想要一个新地图 或者更好的新标记 它使用表位置中的纬度和经度在地图上显示城市 控制器的索引动作 public function index locations Location all l
  • 具有九个补丁项目背景问题的 ListView

    警告 此问题中的 XML 是错误的 请先阅读答案 然后再混淆 我已经用头撞墙有一段时间了 以下帖子阐明了该主题 但未能解决我的问题 Android ListView 状态列表不显示默认项目背景 and 通过自定义选择器的 ListView
  • Laravel 应用程序关闭时会触发什么事件?

    具体来说 我正在做的是在我的 AppServiceProvider gt boot 方法中 我正在创建一个单例类 如下所示 class AppServiceProvider extends ServiceProvider public fu