У меня возникли проблемы с пониманием документации планировщика Heroku.Heroku Scheduler - задание ежедневной задачи
Они дают это как пример кода, но я не уверен, что к чему:
desc "This task is called by the Heroku scheduler add-on"
task :update_feed => :environment do
puts "Updating feed..."
NewsFeed.update
puts "done."
end
task :send_reminders => :environment do
User.send_reminders
end
Я надеюсь использовать этот планировщик, чтобы вызвать метод из моего NotificationsController на ежедневной основе. Я попытался модифицировать свой код:
desc "This task is called by the Heroku scheduler add-on"
task notify: :environment do
Notifications.notify
end
Мой notifications_controller.rb выглядит следующим образом: Примечание Интеграция API Twilio является включено ... и это будет переработан вниз по дороге, но он работает в тестировании.
class NotificationsController < ApplicationController
require 'twilio-ruby'
skip_before_action :verify_authenticity_token
before_action :set_twilio_client
$numbers = []
User.all.select {|user| $numbers << user.phone_number}
def daily_text
$daily_text = ["Test 1", "Test 2", "Test 3"]
$daily_text.sample
end
def notify
message = @client.messages.create(
from: '+1401XXXXXXX',
to: $numbers,
body: daily_text
)
render plain: message.status
end
private
def set_twilio_client
twilio_account_sid = ENV["TWILIO_ACCOUNT_SID"]
twilio_auth_token = ENV["TWILIO_AUTH_TOKEN"]
@client = Twilio::REST::Client.new twilio_account_sid, twilio_auth_token
end
end
Возможно, мне нужно переместить некоторые элементы до уровня модели? Любые рекомендации приветствуются.