Планировщик Heroku не работает на Rails API - PullRequest
0 голосов
/ 03 июля 2019

Я хочу отправлять push-уведомления на устройства с помощью expo. Я успешно получаю expo_push_token для каждого устройства, которому разрешен доступ, и я также могу сделать запрос с помощью Почтальона. Вот мой запрос почтальона: POST запрос: https://exp.host/--/api/v2/push/send

{ "to": "ExponentPushToken[xxx]", "title": "yesahhhh", "body": "lkajdsljaslda" }

Заголовки включают в себя: Accept: application / json Тип содержимого: application / json Кодировка Accept: gzip, deflate Хост: exp.host

Итак, вышесказанное работает как следует через почтальона.

Однако я не могу заставить его работать, когда запускаю команду Heroku: heroku run rake run_job

Метод run_job упоминается в моем приложении rails в 2 местах:

Библиотека / задача / scheduler.rake:

task :run_job => :environment do
    puts "Running Job..."
    User.run_job
    puts "done!" 
end

user.rb:

  def self.run_job
    User.all.each do |u|
      if u.expo_push_token.present?
        require 'net/http'
        require 'json'
        begin
          uri = URI('https://exp.host/--/api/v2/push/send')
          http = Net::HTTP.new(uri.host, uri.port)
          http.use_ssl = true

          request = Net::HTTP::Post.new(uri.path, {'Content-Type' => 'application/json', 'Accept' => 'application/json'})
          request.body = {to: u.expo_push_token, title: "Prana", body: "Time to affirm and visualize"}.to_json

          response = http.request(request)
          puts "The Response: #{response.body}"
        rescue => e
          puts "failed #{e}"
        end
      end
    end
  end

Пользователь успешно получает expo_push_token, однако push-уведомление не получено. Когда я запускаю команду heroku run rake run_job, это ответ, который я получаю на терминале:

Running rake run_job on ⬢ prana-app... up, run.7732 (Free)
Running Job...
D, [2019-07-01T19:17:31.215548 #4] DEBUG -- :   User Load (2.1ms)  SELECT "users".* FROM "users"
done!

Чего не хватает в моем коде ruby, что препятствует получению push-уведомлений?

...