gpt4 book ai didi

jquery - 如何在rails 3中实时显示日志更新?

转载 作者:行者123 更新时间:2023-12-01 06:05:21 25 4
gpt4 key购买 nike

我是 Rails3 和 ruby​​ 的新用户,想就我遇到的问题提出问题

在我的应用程序中,我有一个方法,它从数据库中获取主机列表,并通过 ssh 连接到每个主机并运行作业作业的结果附加到一个字符串(将其视为日志),这都是通过指定要运行的命令的帖子调用的

进程结束时,日志将显示在页面上

到目前为止,一切正常,但是运行所有连接所需的时间相当长(超过一分钟),因此我希望显示结果页面并在 div 中显示日志文件更新,直到该过程完成(几乎实时)

我已经做了一些研究,我确信我可以使用 JQuery 或类似的东西来实现这个想法,但我不知道如何在 Rails 环境中以及我的所有教程中执行此类操作发现并没有什么帮助

这是我现在的代码

update_controller.rb

def update
list = Device.all
c = params[:comm.]
# create log file
@create_template = "Log"

list.each do |device|
#call method to connect via ssh and run specific command
@create_template += ssh_connect(device.address, c)
end

# show process complete
@create_template += "Process Complete"
end

这是我的更新 View

<p><b>SSH Connection log</b></p>
<div class="scroll" style="width:30%">
<%= @create_template.html_safe %>
</div>

因此,如果有人能给我指出任何教程的方向或给我一个要研究的想法,我将不胜感激,或者你有办法做到这一点,那就太好了

干杯

迈克

最佳答案

如果您已经在使用 Rails 3.1,则应该尝试 HTTP Streaming

http://railscasts.com/episodes/266-http-streaming

当然,您必须更改 Controller 中的代码,以便在连接到每个设备后将日志数据流式传输回客户端。

此外,deployinator附带一个 log_and_stream 模块,听起来正是您想要的。看看那个。

关于jquery - 如何在rails 3中实时显示日志更新?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7037612/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com