如何检测scala执行上下文耗尽?

2024-03-25

我的 Playframework 应用程序有时没有响应,我想在运行时检测到这一点 + 记录有关当前在耗尽的执行上下文上运行的内容的信息。

实现这一目标的最佳策略是什么?我考虑过将小型可运行对象发布到执行上下文,如果它们没有及时执行,我会记录一条警告。这个最长等待时间当然应该是可配置的。例如,主 Web 执行上下文的阻塞时间不应超过 1 秒,但后台数据库执行上下文可能允许阻塞 30 秒。

以前一定有人这样做过吗?

相关信息:http://www.playframework.com/documentation/2.2.x/ThreadPools http://www.playframework.com/documentation/2.2.x/ThreadPools


这是一个很难回答的问题。

调度程序的配置实际上取决于参与者正在执行的工作类型。

也许你应该看看那些产生 future 来完成他们工作的演员。在配置文件中预定义执行上下文并像这样使用它们可能是一个好主意:

implicit val ec : ExecutionContext = context.system.dispatchers.lookup("someDispatcher")

这些演员很可能会造成饥饿效应。

您想要实现的效果是确保消息得到快速处理,并且长时间运行的任务不会影响它们,因此分离是这里的关键。

监控应用程序的一个好工具是类型安全控制台。您可以查看那里的调度程序,发现处理消息的延迟增加了。

另一个问题是识别进行网络 I/O 等高风险工作的参与者。如果线程发生问题,导致池中的线程不再可用,则会产生问题。

如果不尝试线程池大小,您很可能不知道什么是最适合您的设置。

我写的大部分建议都是从书中知道的Effective Akka by Jamie Allen他们似乎对我来说工作得很好。 这本书里有一节Fixing Starvation。您可能想仔细看看它。

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

如何检测scala执行上下文耗尽? 的相关文章

随机推荐

  • 通过 OleDb ACE 访问 Excel 2007 二进制文件 (.xlsb)

    我发现 Excel 2007 二进制格式 扩展名为 xlsb 非常完美 适合我的需求 因为它加载速度快且非常紧凑 我交付一个 Excel 中的一堆报告包含大量数据 这些报告是 实际上正在加载一个 IS 包 所以我假设转换为这种格式 请阅读有
  • 如何打印json数据。

    我有一个像这样的 json 输出数组 data name Ben Thorpe id XXXXXXXXXXX name Francis David id XXXXXXXXXXX 我想循环遍历它并使用 javascript 打印出所有名称 我
  • 弹出视图的位置问题

    当我在 iPad 中的纵向视图和横向视图 反之亦然 之间切换时 我的弹出视图的位置出现乱码 这是我计算弹出视图框架的方法 aRect self myElement frame aRect origin x aRect size width
  • API“BaseVariant.getApplicationIdTextResource”已过时,已替换为“VariantProperties.applicationId”

    构建 gradle 时我收到以下消息 API BaseVariant getApplicationIdTextResource is obsolete and has been replaced with VariantProperties
  • 在 matplotlib 中向颜色条添加白色背景

    我想通过添加白色背景使我的颜色条更加明显 我需要图像内的颜色条 这有时很难阅读 这是没有白色背景的代码 import matplotlib pyplot as plt import numpy as np a np random rand
  • CSS3动画“进度”回调

    我只是想知道是否有一种方法可以监视元素动画的进度 我所知道的是animationstart and animationend 有没有某种animationprogress 不 没有animationprogess事件 根据W3规格 http
  • 如何使用 sqlalchemy IntegrityError 查找有问题的属性

    我有一个非常简单的 SqlAlchemy 模型 class User Base The SQLAlchemy declarative model class for a User object tablename users id Colu
  • Javascript - 跟踪任何 xmlhttprequest

    我可以检查页面上的任何 XmlHttpRequest 可执行文件 而无需分别添加 addEventListener 吗 我尝试添加 document addEventListener loadend 但什么也没发生 看起来请求没有全局事件
  • 在Python中提取每个子列表的第一项

    我想知道提取列表列表中每个子列表的第一项并将其附加到新列表的最佳方法是什么 所以如果我有 lst a b c 1 2 3 x y z 还有 我想拔出来a 1 and x并从中创建一个单独的列表 I tried lst2 append x 0
  • 在python中读取二进制文件

    我必须用 python 读取二进制文件 首先由 Fortran 90 程序这样编写 open unit 10 file filename form unformatted write 10 table n1 table n2 write 1
  • 如何将wordpress循环与网格系统引导程序一起使用?

    我想显示一个带两列的条形行 其中包含wordpress循环内容 标题 以绿色块表示 每行都有白色和灰色背景的列 这些列在每行中反转 就像国际象棋检查器一样 see the image for more detail 编辑答案 我相信这就是您
  • 如何让 Windows 错误报告 (WER) 保存内存转储以防止挂起?

    WER 正在应用程序挂起后创建内存转储 当 Windows 显示对话框时应用名称没有回应 如果用户点击关闭程序 我可以看到正在创建的 hdmp 文件C ProgramData Microsoft Windows WER Temp 将它们发送
  • 如何在 CherryPy 中使用 cookie 和 HTTP 基本身份验证?

    我有一个需要身份验证的 CherryPy Web 应用程序 我正在使用 HTTP 基本身份验证 其配置如下所示 app config tools sessions on True tools sessions name zknsrv too
  • 获取字符串形式的命令行参数

    我想将所有命令行参数打印为单个字符串 我如何调用脚本以及我期望打印的内容的示例 RunT py mytst tst c qwerty c mytst tst c qwerty c 执行此操作的代码 args str sys argv 1 a
  • PostgreSQL upsert 查询的问题

    我正在尝试通过更新或插入新记录来更新数据库投票用户表 该表定义如下 Column Type Modifiers id integer not null default nextval vote user table id seq regcl
  • 如何对类或函数定义进行哈希处理?

    背景 在尝试机器学习时 我经常通过 pickling unpickling 的方式重用之前训练过的模型 然而 在进行特征提取部分时 不混淆不同的模型是一个挑战 因此 我想添加一项检查 以确保使用与测试数据完全相同的特征提取过程来训练模型 P
  • 使用 nginx proxy_pass 和重写的多个 django 应用程序

    我有一个名为的 django admin 应用程序myapp我想在不同的物理盒子上部署多个实例 每个客户一个 但是 我希望它们都可以从类似的域访问 mydomain com customer1 myapp 我摆弄了特定的代理设置 并尝试了多
  • 如何在 JSF2 中将一个 @Named bean 注入到另一个 @Named bean 中?

    我有以下代码 Named RequestScoped public class SearchBean private String title private String author getters and setter s In se
  • C++ 中的结构对齐

    struct Vector float x y z func Vector vectors usage load float coords load file func coords 我有一个关于 C 中结构对齐的问题 我将把一组点传递给函
  • 如何检测scala执行上下文耗尽?

    我的 Playframework 应用程序有时没有响应 我想在运行时检测到这一点 记录有关当前在耗尽的执行上下文上运行的内容的信息 实现这一目标的最佳策略是什么 我考虑过将小型可运行对象发布到执行上下文 如果它们没有及时执行 我会记录一条警