Cmd Julia从命令行调用现有REPL上的脚本

Cmd Julia从命令行调用现有REPL上的脚本,cmd,julia,read-eval-print-loop,Cmd,Julia,Read Eval Print Loop,我想从窗口命令行运行Julia脚本,但似乎每次运行Julia code.jl时,都会创建一个新的Julia实例,并且启动时间(包加载、编译?)相当长 有没有办法在当前REPL/Julia实例上运行脚本来跳过此启动时间?(这通常可以节省我50%的跑步时间) 我正在使用Julia 1.0 谢谢,您可以使用包含: julia> include("code.jl") 有几种可能的解决办法。所有这些都涉及到向正在运行的会话发送命令的不同方式。我首先想到的是: 使用插座,如中所述 设置HTTP服务

我想从窗口命令行运行Julia脚本,但似乎每次运行Julia code.jl时,都会创建一个新的Julia实例,并且启动时间(包加载、编译?)相当长

有没有办法在当前REPL/Julia实例上运行脚本来跳过此启动时间?(这通常可以节省我50%的跑步时间)

我正在使用Julia 1.0


谢谢,

您可以使用
包含

julia> include("code.jl")

有几种可能的解决办法。所有这些都涉及到向正在运行的会话发送命令的不同方式。我首先想到的是:

  • 使用插座,如中所述
  • 设置HTTP服务器,例如使用
  • 使用命名管道,如中所述
  • 例如,通过文件系统进行通信(例如,让Julia扫描某个文件夹中的
    .jl
    文件,如果在那里找到这些文件,它们将被执行并移动到另一个文件夹或删除)-这可能是正确实施的最简单方法
在所有的解决方案中,您都可以通过执行一些shell命令将命令发送给Julia

无论您喜欢哪种方法,关键的挑战都是清理代码以正确处理错误(例如,当您向Julia会话发送某些命令时,会话崩溃,或者当您发送请求的速度快于Julia处理请求的速度时)。如果希望Julia服务器与终端分离,这一点尤为重要


作为旁注:当使用Julia中stdlib的分布式模块进行多处理时,您实际上做了一件非常类似的事情(但通信是Julia到Julia的),因此您还可以看看该模块是如何实现的,以了解如何实现该模块。

Hi,它应该来自terminal(cmd),不是从当前运行的julia REPL。谢谢。我会调查的。目前,我所做的是使用“while(true)sleep(1)”来监听触发信号文件,我想这有点像服务器。是的,这类似于我所描述的解决方案4,通过文件系统实现同步。