Added delayed jobs

This commit is contained in:
magnolia-fan
2011-06-20 01:23:22 +04:00
parent ec90fe57f2
commit a7b36e6d0e
10 changed files with 81 additions and 33 deletions
@@ -0,0 +1,21 @@
class CreateDelayedJobs < ActiveRecord::Migration
def self.up
create_table :delayed_jobs, :force => true do |table|
table.integer :priority, :default => 0 # Allows some jobs to jump to the front of the queue
table.integer :attempts, :default => 0 # Provides for retries, but still fail eventually.
table.text :handler # YAML-encoded string of the object that will do work
table.text :last_error # reason for last failure (See Note below)
table.datetime :run_at # When to run. Could be Time.zone.now for immediately, or sometime in the future.
table.datetime :locked_at # Set when a client is working on this object
table.datetime :failed_at # Set when all retries have failed (actually, by default, the record is deleted instead)
table.string :locked_by # Who is working on this object (if locked)
table.timestamps
end
add_index :delayed_jobs, [:priority, :run_at], :name => 'delayed_jobs_priority'
end
def self.down
drop_table :delayed_jobs
end
end
@@ -0,0 +1,9 @@
class AddStatusToArtists < ActiveRecord::Migration
def self.up
add_column :artists, :status, :integer
end
def self.down
remove_column :artists, :status
end
end
+17 -1
View File
@@ -10,7 +10,7 @@
#
# It's strongly recommended to check this file into your version control system.
ActiveRecord::Schema.define(:version => 20110617213912) do
ActiveRecord::Schema.define(:version => 20110618191349) do
create_table "albums", :force => true do |t|
t.string "name"
@@ -31,8 +31,24 @@ ActiveRecord::Schema.define(:version => 20110617213912) do
t.string "pic_url"
t.string "artist_type"
t.string "mbid"
t.integer "status"
end
create_table "delayed_jobs", :force => true do |t|
t.integer "priority", :default => 0
t.integer "attempts", :default => 0
t.text "handler"
t.text "last_error"
t.datetime "run_at"
t.datetime "locked_at"
t.datetime "failed_at"
t.string "locked_by"
t.datetime "created_at"
t.datetime "updated_at"
end
add_index "delayed_jobs", ["priority", "run_at"], :name => "delayed_jobs_priority"
create_table "tracks", :force => true do |t|
t.string "name"
t.integer "album_id"