バックグラウンド ジョブに Resque + RedisToGo を使用しています。Heroku でバックグラウンド タスクを実行できません。初めてバックグラウンド ジョブを実行すると、問題なく実行されるため、これは奇妙です。しかし、もう一度実行すると、実行されません。バックグラウンドを正常に完了するには、毎回「heroku restart」を実行する必要があります....
例えば。Resque バックグラウンド アクションに次のコードがあるとします。
module EncodeSong
@queue = :encode_song
def self.perform(media_id, s3_file_url)
puts 'foobar'
media = Media.find(media_id)
puts 'media id is supposed to be here'
puts media.id
puts s3_file_url
end
end
「heroku コンソール」では、次のことを行います。
Resque.enqueue(EncodeSong, 26, 'http://actual_bucket_name.s3.amazonaws.com/unencoded/users/1/songs/test.mp3')
上記のコードを初めて実行すると、「heroku ログ」に 4 つの「プット」が表示されます。しかし、もう一度実行すると、「foobar」のみが返されます。他の「プット」は表示されません.....
2回目は「media = Media.find(media_id)」を実行できないのではないかと思います。これは、Heroku の本番サーバーでのみ発生しています。私たちのローカル開発マシンでは、この問題は発生しません....何が問題なのか知っている人はいますか?
PS。Heroku ログを有効にしようとしましたが、有用な応答が得られません。このチュートリアルに従って、Resque で Heroku をセットアップしました