2009-11-09 4 views
0

Я использую Delayed_Job для захвата данных пользователя Twitter из API, но по какой-то причине он не сохраняет его в модели! Пожалуйста помоги! (Код ниже)Проблема с Rails с Delayed_Job и активной записью

class BandJob < Struct.new(:band_id, :band_username) #parameter 

    def perform 
    require 'json' 
    require 'open-uri' 
    band = Band.find_by_id(band_id) 
    t = JSON.parse(open("http://twitter.com/users/show/#{band_username}.json").read) 
    band.screen_name = t['screen_name'] 
    band.profile_background_image = t['profile_background_image_url'] 
    band.url = 'http://' + band_username + '.com' 
    band.save! 
    end 

конец

Чтобы уточнить, я на самом деле не получает каких-либо ошибок, это просто не экономить. Вот как выглядит мой журнал:

* [JOB] acquiring lock on BandJob 
    [4;36;1mDelayed::Job Update (3.1ms)[0m [0;1mUPDATE "delayed_jobs" SET locked_at = '2009-11-09 18:59:45', locked_by = 'host:dhcp128036151228.central.yale.edu pid:2864' WHERE (id = 10442 and (locked_at is null or locked_at < '2009-11-09 14:59:45') and (run_at <= '2009-11-09 18:59:45')) [0m 
    [4;35;1mBand Load (1.5ms)[0m [0mSELECT * FROM "bands" WHERE ("bands"."id" = 34) LIMIT 1[0m 
    [4;36;1mBand Update (0.6ms)[0m [0;1mUPDATE "bands" SET "updated_at" = '2009-11-09 18:59:45', "profile_background_image" = 'http://a3.twimg.com/profile_background_images/38193417/fbtile4.jpg', "url" = 'http://Coldplay.com', "screen_name" = 'coldplay' WHERE "id" = 34[0m 
    [4;35;1mDelayed::Job Destroy (0.5ms)[0m [0mDELETE FROM "delayed_jobs" WHERE "id" = 10442[0m 
* [JOB] BandJob completed after 0.5448 
1 jobs processed at 1.8011 j/s, 0 failed ... 

Спасибо!

ответ

0

Установить Delayed::Job.destroy_failed_jobs = false в инициализаторе, а затем взглянуть на таблицу delayed_jobs в вашей базе данных. Найдите столбец ошибок last_error, который будет иметь трассировку стека, чтобы вы могли диагностировать проблему.

Вас так же заинтересует плагин delayed_job_admin, который добавляет контроллер для просмотра вакансий.

+0

Большое спасибо за быструю обратную связь! странно это, я не получаю никаких ошибок ... это просто не спасает! –

+0

Здравствуйте, @MichaelWaxman, вы решили проблему? У меня такая же – utiq

0

Выяснил это.

Это была проблема с консолью и Delayed_Job, которые не играли хорошо вместе. Мне пришлось переопределить переменную в консоли, но затем она отражала изменения в модели. Упс.

1

У меня была такая же проблема, как и отсроченная работа, и мой сервер сделал трюк.