我使用delayed_job
來計劃發佈到Facebook的開放圖的任務,以規避在Facebook之後立即爲Facebook刮板準備好內容的問題行動完成。 (刮板拿錯「OG:類型」的內容,因爲它沒有被高速存儲在Facebook上側)Rails delayed_job - 延遲作業從表中刪除,處於狀態運行狀態,但從未完成/執行
至於我可以告訴大家,我對這個工作流程設置正確的碎片。但是,當作業排隊時,我可以從服務器日誌中看到它已插入到delayed_jobs表中。當我在控制檯查詢delayed_job時,它不存在(實際上不存在,它們總是被刪除)。當檢查delayed_job.log
我能看到的作業記錄爲RUNNING
狀態之後再也沒有報告任何進一步的和通過檢查Facebook的工作似乎並沒有被執行。之前,我收到來自Facebook的錯誤消息,指出操作失敗,將作業設置爲FAILED
。既然情況不是這樣,我相信行動本身已經得到解決。
在服務器日誌報告也飄忽不定,因爲有時我能看到的delayed_job的日誌被刪除,但有時它是在沒有在服務器日誌痕跡刪除。
我想不通的地方來解決此或者如果正在執行的行動,因爲它應該是爲了覈實。下面的相關代碼,請詢問任何額外的幫助。
當方法是越來越實錯誤重現方法來修復錯誤的Facebook
Job JobScheduler::PublishFBListCreation (id=15) RUNNING
從呼叫控制器
後Job JobScheduler::FacebookListCreation (id=2) FAILED (7 prior attempts) with NoMethodError: undefined method `list_url'
delayed_job.log輸出delayed_job.log輸出
if current_user.facebook_id && current_user.facebook_access_token Delayed::Job.enqueue JobScheduler::PublishFBListCreation.new(list_url(@list), current_user.facebook_access_token), 0, 1.minutes.from_now end
job_scheduler.rb
class PublishFBListCreation < Struct.new(:full_list_url, :facebook_access_token)
def perform
@app = FbGraph::Application.new(ENV['FACEBOOK_APP_ID'], :secret => ENV['FACEBOOK_APP_SECRET'])
@fb_user = FbGraph::User.me(facebook_access_token)
action = @fb_user.og_action!(
@app.og_action(:create), :list => full_list_url)
end
end
我不認爲應該的問題。這應該在通話時進行評估,並作爲評估值(即完整的URL)傳遞給排隊調用。 在較短的形式實際的問題是,工作得到排隊,去運行的狀態,但不實際工作。 – justinraczak
你在哪裏得到這個list_url錯誤在延遲作業錯誤列或你的日誌? –
這是一個與在delayed_job.log文件 – justinraczak