簡體   English   中英

delay_job在回形針上不起作用

[英]delayed_job not working on paperclip

我有這個簡單的方法來檢查URL是否存在,如果不存在,請嘗試創建照片對象。

 def create_profile_photo(user_id,image_url)
   if Photo.find_by_external_url(image_url).blank?
     profile_photo = Photo.new
     profile_photo.user_id = user_id
     profile_photo.picture_from_url(image_url)
     profile_photo.save
   end   
 end

# Photo.rb
def picture_from_url(url)
  self.external_url = url
  self.attachment = URI.parse(clean_url)
end

確實有效。 但是當我嘗試使用delayed_job啟動該方法時,它不起作用。

ruby-1.9.2-p290 :085 > MyClass.new.delay.create_profile_photo(347,'http://www.google.com/images/srpr/logo3w.png')
(0.4ms)  COMMIT
 => #<Delayed::Backend::ActiveRecord::Job id: 42, priority: 0, attempts: 0, handler: "--- !ruby/object:Delayed::ProfileableMethod\nobject:...", last_error: nil, run_at: "2012-12-08 21:40:06", locked_at: nil, failed_at: nil, locked_by: nil, queue: nil, created_at: "2012-12-08 21:40:06", updated_at: "2012-12-08 21:40:06"> 
ruby-1.9.2-p290 :085 > Photo.count
   (0.3ms)  SELECT COUNT(*) FROM "photos" 
=> 0

任何想法?

當然,在photos表中沒有Photo實例。 根據您的控制台,您所做的只是將工作排隊。

除非您正在運行DJ工作人員,否則您將無法期望DJ隊列得到處理。 如果未處理DJ隊列,則不能期望排隊的作業運行。 如果尚未運行排隊的作業,則不能指望photos具有任何新記錄。

運行下面的命令,您將看到作業仍在排隊等待運行。

Delayed::Job.find(42)

在開發中,運行以下命令以啟動DJ守護程序。

script/delayed_job

最后,按照@simonmorley的建議,請確保在代碼更改之間終止並重新啟動守護程序,以使作業由應用程序的最新版本處理。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM