将 Ruby 应用程序与我的 Rails 应用程序集成

Integrate Ruby application with my Rails application

我在 Ruby 中有一个应用程序可以从一些主机获取信息并将其保存在一个文件中。每次它获取信息时(每 15 分钟),都会生成一个新文件。现在,我想创建一个 Rails 应用程序,使用一个数据库来配置应用程序(主机的 ip、密码等)并保存来自主机的数据。

我已经使用 rails 创建了一个数据库,我需要将我的程序集成到 rails 应用程序中。我应该把脚本放在哪里,谁把信息放到rails结构里面的数据库里?我需要这个脚本 运行ning 和 rails 应用程序,我的意思是,当我 运行 rails 应用程序时,脚本应该启动。同时,我需要从脚本中使用 Active Directory 提供给我的数据库工具来使用 ORM 管理数据库。

提前致谢!

您可以 运行 rails 中的 cron 作业,运行 每 15 分钟执行一次脚本。 在您的 cron 配置文件中,它看起来像:

*/15 * * * * ruby your_ruby_script.rb

在该脚本中,您可以根据需要操作数据库。

Rails 有 ActiveJobs,您可以使用它定期与其他服务通信。

使用内置的 rails 生成器,您可以创建您的作业,它包括一个存根测试,以确保您的脚本按照您期望的方式运行。

bin/rails generate job guests_cleanup
#=> invoke  test_unit
#=> create    test/jobs/guests_cleanup_job_test.rb
#=> create  app/jobs/guests_cleanup_job.rb

在工作中,您可以定期与 Ruby 申请沟通。

class GuestsCleanupJob < ActiveJob::Base
  queue_as :default

  def perform(*guests)
    # Do something later
  end
end

要安排此作业定期执行,请使用以下 gem 之一。

https://www.ruby-toolbox.com/categories/scheduling