我有一个需要几个小时才能运行的 rake 任务。我登录到我的服务器,运行 rake 任务并观察终端窗口内生成的输出。
然后我的互联网连接中断了。现在有办法查看 rake 任务的实时输出吗?
尝试以下操作:
tail -f /proc/{PID}/fd/1
。或者可以尝试使用 more
命令而不是 tail
下次您可以在
tmux
和 screen
等实用程序的会话中启动 rake 任务,这样即使在连接中断后,您的终端会话也会被存储。
或者,您可以将 rake 任务输出写入文件(您可以配置 Rails.logger
来执行此操作)
我建议使用一个甚至多个 Sidekiq 作业(或者您用来运行后台作业的任何工具),而不是 Rake 任务。
默认情况下,此类工具会很好地集成到您的应用程序监控和日志记录工具中,甚至通常具有允许跟踪单个作业进度的 Web UI。
另外:工程师通常在为后台作业编写测试方面比测试 Rake 任务更有经验。