关闭终端窗口后如何查看 rake 任务的输出?

问题描述 投票:0回答:2

我有一个需要几个小时才能运行的 rake 任务。我登录到我的服务器,运行 rake 任务并观察终端窗口内生成的输出。

然后我的互联网连接中断了。现在有办法查看 rake 任务的实时输出吗?

ruby-on-rails ruby rake
2个回答
1
投票

尝试以下操作:

  1. 查找正在运行的 rake 命令的 PID
  2. 将终端附加到该进程输出的最后日志
    tail -f /proc/{PID}/fd/1
    。或者可以尝试使用
    more
    命令而不是
    tail

下次您可以在

tmux
screen
等实用程序的会话中启动 rake 任务,这样即使在连接中断后,您的终端会话也会被存储。 或者,您可以将 rake 任务输出写入文件(您可以配置
Rails.logger
来执行此操作)


0
投票

我建议使用一个甚至多个 Sidekiq 作业(或者您用来运行后台作业的任何工具),而不是 Rake 任务。

默认情况下,此类工具会很好地集成到您的应用程序监控和日志记录工具中,甚至通常具有允许跟踪单个作业进度的 Web UI。

另外:工程师通常在为后台作业编写测试方面比测试 Rake 任务更有经验。

© www.soinside.com 2019 - 2024. All rights reserved.