KnowledgeHub
Questions
Tags
Users
Search
Alex Rivera
|
Logout
Edit Question
Title
Body
I have a process which takes generally a few seconds to complete so I'm trying to use delayed_job to handle it asynchronously. The job itself works fine, my question is how to go about polling the job to find out if it's done. I can get an id from delayed_job by simply assigning it to a variable: job = Available.delay.dosomething(:var => 1234) +------+----------+----------+------------+------------+-------------+-----------+-----------+-----------+------------+-------------+ | id | priority | attempts | handler | last_error | run_at | locked_at | failed_at | locked_by | created_at | updated_at | +------+----------+----------+------------+------------+-------------+-----------+-----------+-----------+------------+-------------+ | 4037 | 0 | 0 | --- !ru... | | 2011-04-... | | | | 2011-04... | 2011-04-... | +------+----------+----------+------------+------------+-------------+-----------+-----------+-----------+------------+-------------+ But as soon as it completes the job it deletes it and searching for the completed record returns an error: @job=Delayed::Job.find(4037) ActiveRecord::RecordNotFound: Couldn't find Delayed::Backend::ActiveRecord::Job with ID=4037 @job= Delayed::Job.exists?(params[:id]) Should I bother to change this, and maybe postpone the deletion of complete records? I'm not sure how else I can get a notification of it's status. Or is polling a dead record as proof of completion ok? Anyone else face something similar?
Tags (comma-separated)
Save Edits
Cancel