@@ -35,6 +35,7 @@ gem 'sorcery' | |||||
gem 'will_paginate', '~> 3.0' | gem 'will_paginate', '~> 3.0' | ||||
gem 'activerecord-postgresql-adapter' | gem 'activerecord-postgresql-adapter' | ||||
gem 'pg' | gem 'pg' | ||||
gem 'delayed_job_active_record' | |||||
group :production do | group :production do | ||||
gem 'unicorn' | gem 'unicorn' | ||||
@@ -48,6 +48,11 @@ GEM | |||||
coffee-script-source (1.4.0) | coffee-script-source (1.4.0) | ||||
curb (0.7.18) | curb (0.7.18) | ||||
debug_inspector (0.0.2) | debug_inspector (0.0.2) | ||||
delayed_job (3.0.5) | |||||
activesupport (~> 3.0) | |||||
delayed_job_active_record (0.4.3) | |||||
activerecord (>= 2.1.0, < 4) | |||||
delayed_job (~> 3.0) | |||||
erubis (2.7.0) | erubis (2.7.0) | ||||
execjs (1.4.0) | execjs (1.4.0) | ||||
multi_json (~> 1.0) | multi_json (~> 1.0) | ||||
@@ -171,6 +176,7 @@ DEPENDENCIES | |||||
better_errors | better_errors | ||||
binding_of_caller | binding_of_caller | ||||
coffee-rails (~> 3.2.1) | coffee-rails (~> 3.2.1) | ||||
delayed_job_active_record | |||||
feedzirra | feedzirra | ||||
haml-rails | haml-rails | ||||
htmlentities | htmlentities | ||||
@@ -0,0 +1,22 @@ | |||||
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.string :queue # The name of the queue this job is in | |||||
table.timestamps | |||||
end | |||||
add_index :delayed_jobs, [:priority, :run_at], :name => 'delayed_jobs_priority' | |||||
end | |||||
def self.down | |||||
drop_table :delayed_jobs | |||||
end | |||||
end |
@@ -11,7 +11,23 @@ | |||||
# | # | ||||
# It's strongly recommended to check this file into your version control system. | # It's strongly recommended to check this file into your version control system. | ||||
ActiveRecord::Schema.define(:version => 20130320181527) do | |||||
ActiveRecord::Schema.define(:version => 20130326114555) do | |||||
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.string "queue" | |||||
t.datetime "created_at", :null => false | |||||
t.datetime "updated_at", :null => false | |||||
end | |||||
add_index "delayed_jobs", ["priority", "run_at"], :name => "delayed_jobs_priority" | |||||
create_table "feeds", :force => true do |t| | create_table "feeds", :force => true do |t| | ||||
t.string "title" | t.string "title" | ||||
@@ -29,7 +45,7 @@ ActiveRecord::Schema.define(:version => 20130320181527) do | |||||
t.integer "layer_id" | t.integer "layer_id" | ||||
end | end | ||||
add_index "feeds_layers", ["feed_id", "layer_id"], :name => "index_feeds_layers_on_feed_id_and_layer_id" | |||||
add_index "feeds_layers", ["feed_id", "layer_id"], :name => "index_feeds_layers_on_feed_id_and_layer_id", :unique => true | |||||
create_table "layers", :force => true do |t| | create_table "layers", :force => true do |t| | ||||
t.string "name" | t.string "name" | ||||
@@ -0,0 +1,5 @@ | |||||
#!/usr/bin/env ruby | |||||
require File.expand_path(File.join(File.dirname(__FILE__), '..', 'config', 'environment')) | |||||
require 'delayed/command' | |||||
Delayed::Command.new(ARGV).daemonize |