Wakanda 服务器脚本化干净关闭

2023-11-27

通过 OS X shell 脚本执行 Wakanda 服务器彻底关闭的最佳实践是什么?

这将是当前加载和运行的解决方案。


即将发布的 1.1.0 版本的最佳实践:

  • 处理applicationWillStop事件在service处理应用程序特定的关闭逻辑
  • service wakanda stop对于 Ubuntu 和普通kill对于 Mac 操作系统(kill -9应该始终是某种超时后的最后手段,但这不再是必要的了)

当前版本 1.0.x 的最佳实践:

  • 使用以下命令准备服务器停止HTTP Request Handler或其他方法(确保很好地保护这一点并仅接受来自本地主机的连接)
  • service wakanda stop for Ubuntu and a normal kill for Mac OS ( kill -9 should always be the last resort after some kind of timeout but this should not be necessary anymore)

更多细节 :

我们应该区分像 Apache 这样的 HTTP 服务器和像 Wakanda Server 这样的应用程序服务器。

例如,当您使用SharedWorker在 Wakanda 中,您正在创建一个单独的线程来运行一些代码。假设工作人员正在进行某种关键数据操作。如果您让服务器为您关闭该工作线程,则可能会导致应用程序中的数据不一致。因此,您应该在服务器停止应用程序之前处理任何特定于业务逻辑的“干净”关闭。

从1.1.0版本开始,不再创建专门的HTTP Request Handler您可以调用它来准备服务器的停止,您可以使用处理该事件的服务applicationWillStop.

当服务器收到可阻止的终止信号(TERM、QUIT、INT)时,它将启动停止进程(以下适用于 Wakanda Digital App Factory 1.1.x 版本):

  • 通知该事件的每个服务applicationWillStop
  • 通知该事件的每个服务httpServerWillStop
  • 等待所有服务代码执行完成 - 一次调用一个服务(服务器等待处理事件的代码结束执行,然后再调用下一个服务) -
  • 拒绝任何新传入的 HTTP 请求
  • 处理 HTTP Server 队列中的所有 HTTP 请求
  • 要求所有执行 JS 代码的工作线程和线程停止执行(包括请求处理程序代码)。
  • 检查是否有任何线程/JS 上下文仍然处于活动状态,如果是这种情况,则最多等待 5 秒。
  • 服务器强制所有 JavaScript 上下文停止执行并 杀死所有剩余的线程
  • 服务器等待线程关闭
  • 服务器停止

在 1.1.0 之前的版本中,服务器会在通知服务关闭事件之前要求工作人员关闭。这就是为什么我们不能依靠服务来彻底关闭SharedWorkers.

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Wakanda 服务器脚本化干净关闭 的相关文章

随机推荐

  • OpenCV,拉普拉斯算子的变体(Java)

    我试图根据图像定位拉普拉斯算子的变体 目的是根据图像的模糊度获得数值 这是一个有用的帖子http www pyimagesearch com 2015 09 07 blur detection with opencv cv2 Laplaci
  • 如何使用AES加密java中的文件[重复]

    这个问题在这里已经有答案了 我需要知道如何创建 AES 并使用它来加密和解密 java 中的文件 尝试使用CipherOutputStream并传递一个FileOutputStream See http www java2s com Tut
  • tbloader 与 SPARQL INSERT - 为什么命名图有不同的行为?

    ARQ TDB 和命名图的命令行工具的连接存在奇怪的行为 如果通过 tdbloader 在命名图中导入数据 则无法通过 SPARQL SELECT 查询中的 GRAPH 子句进行查询 但是 当使用 SPARQL INSERT 在同一图中插入
  • C语言中如何提取浮点数的小数部分?

    如何提取浮点数的小数部分并将小数部分和整数部分存储到两个单独的整数变量中 您使用modf功能 double integral double fractional modf some double integral 您也可以将其转换为整数 但
  • 有哪些令人信服的例子表明指针算术优于数组下标?

    我正在为 C 入门课程准备一些幻灯片 并且尝试展示在数组下标上使用指针算术的良好示例 和动机 我在书中看到的很多例子都是相当等效的 例如 许多书籍都展示了如何反转字符串中所有值的大小写 但除了用 p 替换 a i 之外 代码是相同的 我正在
  • 如何使 defaultdict 对于意外客户来说是安全的?

    有好几次 甚至是连续几次 我都被 defaultdict 错误所困扰 忘记了某些东西实际上是一个 defaultdict 并将其视为普通字典 d defaultdict list try v d key except KeyError pr
  • 如何在 OpenAPI 2.0 中为同一操作定义路径和 formData 参数?

    我有一个图像上传端点 看起来像 test id relationships image 我想使用 OpenAPI 2 0 Swagger 2 0 来描述此端点 端点具有路径和 formData 参数 我尝试了以下方法 swagger 2 0
  • 如何设置JDialog的透明背景

    Hy 我如何设置背景透明并 删除 关闭操作 标记为红色 我只想出示卡片 虽然UNDECORATED JFrame透明度没有问题 myJFrame setBackground new Color 0 0 0 0 已经足够漂亮了 但是JDial
  • 重用 NSPredicate 进行新变量替换

    我可以重用 NSPredicate 来替换新变量吗 我的 NSPredicate 相当简单 NSPredicate userPredicate NSPredicate predicateWithFormat id userID userID
  • 如何将控制台应用程序窗口设置为最顶层窗口(C#)?

    如何将控制台应用程序设置为最顶层窗口 我正在 NET 中构建控制台应用程序 我正在使用 C 甚至可能 pinvokes 到非托管代码也可以 我认为我可以让我的控制台应用程序从 Form 类派生 class MyConsoleApp Form
  • 错误:无法从链接服务器“ADSI”的 OLE DB 提供程序“ADsDSOObject”获取行

    当我尝试查询 AD 中的用户时 收到以下错误 无法从链接服务器 ADSI 的 OLE DB 提供程序 ADsDSOObject 获取行 我认为该问题是由于 1000 行限制 或 Sql Server 2008 中的 901 行 造成的 我可
  • 从 strsplit - R 之后的嵌套列表中提取第 n 个元素

    我一直在尝试了解如何处理的输出strsplit好一些 我经常有这样的数据想要拆分 mydata lt c 144 4 5 154 2 146 3 5 142 143 4 DNB 90 1 144 4 5 154 2 146 3 5 142
  • 带return语句和不带return语句的函数有区别吗?

    假设您有 2 个相同的函数 但不返回值 function a do some interesting things function b do the same interesting things return 功能b显然更冗长 但是它们
  • 使用 jquery 或 javascript 更改 CSS 根变量

    我在网页中使用 CSS 变量并制作一种主题颜色 root themeColor 0afec0 hoverColor fff bodyColor EEF1EF 现在我已经用过var themeColor 到处 我想分配一个随机颜色 theme
  • 如何对使用 Angular 中的路由器的组件进行单元测试?

    在 Angular 2 0 0 中 我正在对使用 Router 的组件进行单元测试 但是我得到 提供的参数与调用目标的任何签名都不匹配 错误 在spec ts的Visual Studio代码中 新的Router 以红色突出显示 正确的语法是
  • 选择optgroup中的所有选项

    我有一个select已分组的元素options 我需要选择 或取消选择 全部options in an optgroup当option被点击 我还需要能够拥有多个optgroup立即被选择 我希望它的工作方式是这样的 如果未选择任何内容 我
  • 在 Container-VM 映像上使用 root 用户登录 docker

    这是关于 Google Container VM Image beta 的问题https cloud google com compute docs containers vm image 我登录了一个由Container VM镜像制作的实
  • 输入大小固定的算法复杂度

    我找到了一些关于大 O 表示法的参考资料 但据我所知 算法复杂性是输入数据大小的函数 例如 如果冒泡排序的复杂度为O n 2 n是输入数组的大小 正确的 但是 如何确定具有固定输入大小并取决于输入值的算法的复杂性 例如 求最大公约数 GCD
  • bookdown:自定义输出文件名

    这是我之前在这里提出的问题的后续 为 bookdown 项目创建随附幻灯片 Bookdown允许将文件编译为各种格式 包括多个pdf 因此 问题是给输出赋予不同的名称 如果没有 则第二个pdf编译覆盖第一个 在对我之前问题的评论中 我写道
  • Wakanda 服务器脚本化干净关闭

    通过 OS X shell 脚本执行 Wakanda 服务器彻底关闭的最佳实践是什么 这将是当前加载和运行的解决方案 即将发布的 1 1 0 版本的最佳实践 处理applicationWillStop事件在service处理应用程序特定的关