Ruby on rails 使用linux脚本使连续rake任务运行(启动、停止等)

Ruby on rails 使用linux脚本使连续rake任务运行(启动、停止等),ruby-on-rails,ruby,linux,rake,Ruby On Rails,Ruby,Linux,Rake,我有一个rake任务,它解析流式API并将数据输入数据库。流式API是实时提要,rake任务应该持续运行,以便实时数据进入数据库。一旦调用,rake任务将持续运行并解析数据。现在我已经启动了rake任务,它正在运行。问题是,如果我关闭终端或重新启动服务器,rake任务将停止。因此,我需要linux中的脚本(类似于用于启动或停止apache服务器的脚本),它可以执行以下操作: 1. start the rake task by calling rake command (rake parse:st

我有一个rake任务,它解析流式API并将数据输入数据库。流式API是实时提要,rake任务应该持续运行,以便实时数据进入数据库。一旦调用,rake任务将持续运行并解析数据。现在我已经启动了rake任务,它正在运行。问题是,如果我关闭终端或重新启动服务器,rake任务将停止。因此,我需要linux中的脚本(类似于用于启动或停止apache服务器的脚本),它可以执行以下操作:

1. start the rake task by calling rake command (rake parse:stream) from the RAILS-ROOT (application directory of Rails app)
2. stop the rake task by killing the process.
3. start the rake task automatically when the server reboots.

我不熟悉linux脚本,也不知道从哪里开始。我正在使用ubuntu服务器。有人能帮我吗?

您需要将脚本作为守护程序运行。当我创建这种启动脚本时,我通常会创建两个文件,一个保存在
/etc/init.d
中并处理
启动/停止/状态/重新启动
命令,另一个实际执行任务并被第一个脚本调用

是一种解决方案,尽管守护程序脚本是用perl编写的,但您只希望运行一些命令行,因此守护perl脚本可以轻松完成您的工作

如果您愿意,还可以使用daemonizing脚本,因此您可以用ruby编写一个执行rake任务的脚本


如果你想成为硬核,有一些解决方案可以用来编写bash脚本来进行后台监控,但我不确定我会推荐这样的解决方案;至少我发现它们很难使用。

您需要将脚本作为守护进程运行。当我创建这种启动脚本时,我通常会创建两个文件,一个保存在
/etc/init.d
中并处理
启动/停止/状态/重新启动
命令,另一个实际执行任务并被第一个脚本调用

是一种解决方案,尽管守护程序脚本是用perl编写的,但您只希望运行一些命令行,因此守护perl脚本可以轻松完成您的工作

如果您愿意,还可以使用daemonizing脚本,因此您可以用ruby编写一个执行rake任务的脚本


如果你想成为硬核,有一些解决方案可以用来编写bash脚本来进行后台监控,但我不确定我会推荐这样的解决方案;至少我觉得它们很难使用。

这里有一篇文章也可能对您有所帮助。它讨论了管理Ruby应用程序及其相关流程的各种选项:

这里有一篇文章也可能对您有所帮助。它讨论了管理Ruby应用程序及其相关流程的各种选项:

看看Github的项目是如何完成的

本质上,它们创建用于启动/重新启动/停止特定任务的任务,在本例中为
resque:work
。请注意,
restart\u workers
任务仅调用其他任务,即停止和启动。根据您的需要更改它应该非常容易。

了解Github的项目是如何做到的


本质上,它们创建用于启动/重新启动/停止特定任务的任务,在本例中为
resque:work
。请注意,
restart\u workers
任务仅调用其他任务,即停止和启动。根据您的需要更改它应该非常容易。

因此,我应该为使用第一个解决方案安装perl吗?我应该为使用第一个解决方案安装perl吗