4

Clockwork スケジューラ プロセスの構文に問題があります。私は実際にこのスレッドで議論されているものと同様の問題を抱えていますが、完全には回答されていません ( How do I use Rails clockwork gem to run rake tasks? )

「heroku rake send_notifications」でテストすると、「scheduler.rake」は正しく機能しています。私の clock.rb プロセスも動作しており、30 秒ごとにトリガーされます。ただし、「rake.scheduler」で「send_notifications」タスクを正しく実行するための clock.rb の構文に問題があります。外観は次のとおりです。

# scheduler.rake
desc "This task is called by the Heroku scheduler add-on"
task :send_notifications => :environment do

   puts "this test is working correctly!"

end

clock.rb は次のようになります。

require File.expand_path('../../config/boot',        __FILE__)
require File.expand_path('../../config/environment', __FILE__)
require 'clockwork'

include Clockwork

every(30.seconds, 'Send notifications') {
   # Heroku::API.new.post_ps('pocket-pal', 'rake scheduler:send_notifications')
    rake scheduler:send_notifications
}

ご覧のとおり、Heroku API を使用して rake を呼び出す分離プロセスを試してみました。

Heroku API を使用すると、次のエラーが発生します。

ERROR -- : uninitialized constant Heroku (NameError)

rake を呼び出すと、次のエラーが表示されます。

ERROR -- : undefined local variable or method `send_notifications' for main:Object (NameError)

いずれかのアプローチの正しい構文を知っている人はいますか?

4

2 に答える 2