Im使用Resque + RedisToGo來處理我的後臺作業。我在Heroku上運行後臺任務時遇到問題。它的奇怪之處在於,第一次運行後臺作業時,它會毫無問題地執行。但是當我再次運行它時,它不會執行。我會跑「的Heroku重啓」,每個其他時間爲背景,以順利完成....Heroku上的Resque未正常運行
例如,如果我有我的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'。其他「puts」不顯示.....
我懷疑它無法第二次運行「media = Media.find(media_id)」。這隻發生在Heroku的生產服務器上。在我們的本地開發機器上,我們不會遇到這個問題....任何人都知道什麼是錯的?
PS。我試過啓用Heroku logs,但仍然沒有得到任何有用的迴應。我跟着這個tutorial設置了Resoku的Heroku