问题标签 [hotswap]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
4 回答
3455 浏览

java - Java 热插拔的限制

java hotswap功能为我节省了很多时间。但是,它有很多限制(例如不支持架构更改)。知道限制是否会尽快得到解决吗?根据这个论坛条目,它似乎被忽略了。

我知道像 JRebel 这样的产品会有所帮助。但是有人知道这方面的任何开源工具吗?

0 投票
8 回答
1777 浏览

versioning - 寻找具有热代码交换的编程平台

我目前正在就如何在程序运行时升级程序进行头脑风暴。(不是在调试时,一个“生产”系统。)

但它需要做的一件事是,将更改的源代码或编译后的字节码实际提交到正在运行的进程中。

伪代码

首先,我想实现系统在没有面向对象复杂性的情况下工作。这导致了以下要求:

  • 更改函数的源代码或字节码
  • 删除函数
  • 添加新功能
  • 更改函数的签名

使用 .NET(和其他),我可以通过 IoC 注入一个类,从而可以更改源代码。但是加载会很麻烦,因为一切都必须在程序集中或通过 Emit 创建。也许使用Java会更容易?我认为整个 ClassLoader 是可替换的。

使用 JavaScript,我可以实现许多目标。只需评估一个新函数 (MyMethod_V25) 并将其分配给 MyClass.prototype.MyMethod。我认为人们也可以使用“del”以某种方式删除功能

哪个通用平台可以处理这样的事情?

0 投票
5 回答
8744 浏览

erlang - 在 Erlang 的 gen_server 中实现代码交换

我希望在 gen_server 上使用 Erlang 的热代码交换功能,这样我就不必重新启动它。我该怎么做?当我搜索时,我只能找到一篇提到我需要使用gen_server:code_change回调的文章。

但是,我真的找不到任何关于如何使用它的文档/示例。非常感谢任何帮助或资源链接!

0 投票
3 回答
4639 浏览

python - 在实例方法中更改类实例

任何想法是否有办法使以下代码工作

类似于以下内容,可安全用于更复杂的对象(如 django 模型,以热交换实例所指的 db 条目)

0 投票
4 回答
436 浏览

erlang - 除了 Erlang 之外的其他语言是否有能力将代码发送到正在运行的实例?

我刚刚了解到 Erlang 可以使用“nl”命令将代码和模块远程加载到集群的所有实例上。任何其他语言都可以做到这一点吗?

0 投票
5 回答
36361 浏览

java - “热代码替换”不起作用——Eclipse 不会更改 JBoss 上的任何代码

我目前在 Eclipse Galileo 和 JBoss 4.2.3 上遇到“热代码替换”问题。

在其他应用程序中,我在本地 JBoss 上运行了一个扩展的 Java WAR。构建它的项目由 Maven 管理。我使用 Maven 目标 war:exploded 构建项目,然后使用 ANT 脚本将该目录复制到 JBoss。

当我现在运行应用程序并在代码中的任何位置设置断点时,Eclipse 会在调试模式下正确地停止在该行。但是当我对源文件进行更改并保存它时,Eclipse 不会将此更改应用于 JBoss。例如,当我将普通代码行添加到注释中时,调试器仍然会跳过该注释,就好像它是普通 Java 代码一样。或者当我删除一行时,调试器似乎与文件不同步并开始越过括号。

但我也没有收到任何“热代码替换错误”消息。在我看来,Eclipse 将更改应用于源文件,但没有将其应用于 JBoss。

为了使热代码替换起作用,是否必须打开任何特殊首选项?或者我如何构建应用程序并将其部署到 JBoss 是否有任何错误?

0 投票
1 回答
6956 浏览

erlang - Erlang 中的代码热交换

我最近在 InfoQ 上看到了一个关于 Erlang 的视频,在该视频中,一位创建者展示了如何替换消息循环的行为。

他只是发送一条包含新版本消息循环代码的 lambda 的消息,然后调用它而不是再次调用旧循环。

Erlang 中的代码热交换指的是什么?还是其他一些更原生的功能?

0 投票
3 回答
771 浏览

eclipse - Eclipse 热代码替换失败 - 重新发布 Web 应用程序

我在 Tomcat 上将热插拔 java 调试功能与 Web 应用程序一起使用。在更改了一些类签名之后,我得到了“热代码替换失败”Eclipse 对话框——我明白这一点。

在这种情况下,我想要的是重新发布应用程序(我可以这样做)并使用新部署的代码。但是调试器仍然会抱怨,直到我重新启动服务器。因为其他应用程序和长时间启动我不想要那样。

有没有办法告诉调试器,新的类版本已经重新加载到新的 webapp 类加载器中,并且可以保存以继续?

谢谢。

0 投票
2 回答
369 浏览

c++ - c++ SERVER 应用程序的在线更新机制

找不到有关此主题的任何内容。

我有一个 Windows TCP C++ 服务器应用程序,我想不时更新它。


正如您显然理解的那样,这会带来一个问题 - 从用户的角度来看,服务器应该是 24/7 的。
更新时,还希望保持与用户的当前 TCP 连接。


我一直在考虑一个类似模块的系统,例如套接字处理模块将驻留在“sockets.dll”中,服务器的逻辑将驻留在“logic.dll”中。
采用这种方法似乎打开了潘多拉的盒子。
- 我将如何进行模块的实际“交换”?想象一下,X 工作线程不断地从一个模块向另一个模块发送数据——交换时我需要一种(轻快)的方式来暂停/暂停它们;也许是信号?
- 协议版本,甚至函数签名在更新时可能会发生变化。如何处理?
- 其他问题,例如未被注意到的逻辑错误。
- 谁知道会出现其他问题。


除了上述之外,我还担心如何更新 10 台服务器?我的意思是,它们都相互连接,相互交流。
如果更新引入了协议修改,它可能会导致巨大的问题,在这种情况下,我需要将整个集群(服务器)作为一个整体进行更新;关闭整个操作?这听起来不对,根本不对!我怎么做?我在这里缺少哪些概念以及如何学习它/它们?


我能做些什么吗?
你会怎么做?你做过这样的事吗?
您知道解决问题的任何机制/文章/项目/源示例/等吗?

任何有价值的建议都非常受欢迎!!

0 投票
3 回答
21457 浏览

python - 使用 Python 进行热重载/交换

我希望代码更改在开发过程中立即生效。如何检测更改的文件并在正在运行的 Python (2.7) 应用程序中重新加载它们?

编辑:

在阅读了“Ivo van der Wijk”链接的页面后,我认为最好在代码更改时重新启动 Web 应用程序——就像 Django 那样。所以实际的问题是:如何监控文件修改?