Ruby on rails 如何使用Rails让我的Twitter机器人保持清醒?

Ruby on rails 如何使用Rails让我的Twitter机器人保持清醒?,ruby-on-rails,ruby,twitter,server,bots,Ruby On Rails,Ruby,Twitter,Server,Bots,我的主要目的是创建一个twitter机器人。这基本上是从某些帐户转发推特。除了让机器人保持清醒外,其他一切都正常工作。为了保持清醒,我需要让我的笔记本电脑和控制台保持打开状态。我如何部署一个可以为我做到这一点的应用程序?我想让服务器为所有这些工作。我尝试使用Heroku,但它给出了预期的超时,因为请求应该是打开的,以保持我的方法继续 先谢谢你 我的方法: def self.start_bot @client = Twitter::REST::Client.new do |conf

我的主要目的是创建一个twitter机器人。这基本上是从某些帐户转发推特。除了让机器人保持清醒外,其他一切都正常工作。为了保持清醒,我需要让我的笔记本电脑和控制台保持打开状态。我如何部署一个可以为我做到这一点的应用程序?我想让服务器为所有这些工作。我尝试使用Heroku,但它给出了预期的超时,因为请求应该是打开的,以保持我的方法继续

先谢谢你

我的方法:

    def self.start_bot
    @client = Twitter::REST::Client.new do |config|
      config.consumer_key        = ENV["CONSUMER_KEY"]
      config.consumer_secret     = ENV["CONSUMER_SECRET_KEY"]
      config.access_token        = ENV["ACCESS_TOKEN"]
      config.access_token_secret = ENV["ACCESS_SECRET_TOKEN"]
    end

    while true do
      begin
        @client.search("from:ExampleAccount1 OR from:ExampleAccount1 OR from:ExampleAccount1
min_faves:250 -rt", result_type: "recent").take(5).collect do |tweet|
            begin
              @client.fav(tweet)
              @client.retweet(tweet)
              sleep(2)
            rescue
              puts "Already retweeted."
              sleep(3)
            end
        end
        puts "one round completed."
        sleep(120)
      rescue
        puts "Something Happened"
        sleep(240)
      end
    end
  end

我想对于你的要求,你可以使用

您需要执行以下操作:

  • 首先安装发条宝石
在lib文件夹中创建lib/clock.rb

### Example :-
require 'clockwork'
require './config/boot'
require './config/environment'

module Clockwork

  handler do |job|
    puts "Running #{job}"
  end

  every(1.day, 'Creating Cycle', :at => '12:00') {YourClass_name.start_bot}
end
  • 创建一个proc文件 对于您的
    Procfile
    像这样使用

    worker: bundle exec clockwork lib/clock.rb
    
每次Heroku push/web服务器重新启动后,它都会启动服务器

或者您可以像这样从计算机上使用console运行,但在这种情况下,您需要在每次重新启动web服务器后运行

heroku run bundle exec clockwork lib/clock.rb
从Heroku开放式控制台输入

bundle exec clockwork lib/clock.rb

希望这会有所帮助:)

非常感谢您的努力。你的解决方案正是我所需要的:)在解决方案之前,我必须采取其他措施。我是说我找到了一个heroku的插件,它叫“heroku调度器”。这与您的解决方案基本相同。非常感谢。