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

时间:2015-11-04 14:57:12

标签: ruby-on-rails ruby scripting integration

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

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

提前致谢!

2 个答案:

答案 0 :(得分:0)

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

*/15 * * * * ruby your_ruby_script.rb

在该脚本中,您可以根据自己的要求操作数据库。

答案 1 :(得分:0)

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

要安排此作业定期执行,请使用以下某个宝石。

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