设置Twilio客户端

时间:2014-10-24 20:01:00

标签: ruby-on-rails ruby methods twilio rake-task

我正在访问Twilio API,向我的数据库中的所有用户发送每日消息。消息对每个人来说应该是相同的,并且来自我已经放在一起的一系列消息。我使用Heroku Scheduler来触发我构建的rake任务,该任务将在每天的某个小时运行任务。但是,由于我的Twilio客户端模型的设置方式,每次运行任务时都会创建一个新的模型实例,因此总是在数组中发送第一条消息(而不是连续地通过数组,因为它'设置做)。有没有人知道重新排列或重新编码我的模型或rake任务的方法,所以这不会发生?它理想情况下应该自行运行。

twilio_client.rb型号:

 class TwilioClient
    require 'twilio-ruby'

    def initialize
        @client = Twilio::REST::Client.new ENV["TWILIO_ACCOUNT_SID"], ENV["TWILIO_AUTH_TOKEN"]
        @index = 0
    end

    def notify
        all_phone_numbers.each do |number|
            @client.account.messages.create(
                from: '+1401XXXXXXX',
                to: number,
                body: daily_text
            )
        end
    end

    private

    def daily_text
        @message = [ 
            "1", "2", "3"
        ]

        @index += 1
        if @index >= @message.length
            @index = 0
        end

        @message[@index]
    end

    def all_phone_numbers
        User.pluck(:phone_number)
    end

end

rake任务:

desc "This task is called by the Heroku scheduler add-on"
task notify: :environment do
  client = TwilioClient.new
  client.notify
end

0 个答案:

没有答案