add weekly maintenance script
This commit is contained in:
@@ -1,17 +1,20 @@
|
|||||||
class ApiCacheGenerator
|
class ApiCacheGenerator
|
||||||
def generate_tag_cache
|
def generate_tag_cache
|
||||||
File.open("#{RAILS_ROOT}/public/cache/tags-legacy.xml", "w") do |f|
|
File.open("#{Rails.root}/public/cache/tags.json", "w") do |f|
|
||||||
f.puts('<?xml version="1.0" encoding="UTF-8"?>')
|
f.print("[")
|
||||||
f.puts('<tags type="array">')
|
|
||||||
Tag.find_each do |tag|
|
Tag.find_each do |tag|
|
||||||
name = CGI.escape_html(tag.name)
|
hash = {
|
||||||
id = tag.id.to_s
|
"name" => tag.name,
|
||||||
created_at = tag.created_at.try(:strftime, '%Y-%m-%d %H:%M')
|
"id" => tag.id,
|
||||||
post_count = tag.post_count.to_s
|
"created_at" => tag.created_at,
|
||||||
category = tag.category
|
"post_count" => tag.post_count,
|
||||||
f.puts('<tag name="' + name + '" id="' + id + '" ambiguous="false" created_at="' + created_at + '" count="' + post_count + '" type="' + category + '"></tag>')
|
"category" => tag.category
|
||||||
|
}
|
||||||
|
f.print(hash.to_json)
|
||||||
|
f.print(", ")
|
||||||
end
|
end
|
||||||
f.puts('</tags>')
|
f.seek(-2, IO::SEEK_END)
|
||||||
|
f.print("]\n")
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|||||||
@@ -5,7 +5,6 @@ class DailyMaintenance
|
|||||||
Upload.delete_all(['created_at < ?', 1.day.ago])
|
Upload.delete_all(['created_at < ?', 1.day.ago])
|
||||||
ModAction.delete_all(['created_at < ?', 3.days.ago])
|
ModAction.delete_all(['created_at < ?', 3.days.ago])
|
||||||
Delayed::Job.delete_all(['created_at < ?'], 1.day.ago)
|
Delayed::Job.delete_all(['created_at < ?'], 1.day.ago)
|
||||||
ApiCacheGenerator.new.generate_tag_cache
|
|
||||||
end
|
end
|
||||||
|
|
||||||
def prune_ad_hits
|
def prune_ad_hits
|
||||||
|
|||||||
5
app/logical/weekly_maintenance.rb
Normal file
5
app/logical/weekly_maintenance.rb
Normal file
@@ -0,0 +1,5 @@
|
|||||||
|
class DailyMaintenance
|
||||||
|
def run
|
||||||
|
ApiCacheGenerator.new.generate_tag_cache
|
||||||
|
end
|
||||||
|
end
|
||||||
3
app/models/key_value.rb
Normal file
3
app/models/key_value.rb
Normal file
@@ -0,0 +1,3 @@
|
|||||||
|
class KeyValue < ActiveRecord::Base
|
||||||
|
validates_uniqueness_of :key
|
||||||
|
end
|
||||||
@@ -18,6 +18,10 @@ every 1.day, :at => "1:00 am" do
|
|||||||
command "cd /var/www/danbooru2/current ; script/donmai/prune_backup_dbs"
|
command "cd /var/www/danbooru2/current ; script/donmai/prune_backup_dbs"
|
||||||
end
|
end
|
||||||
|
|
||||||
|
every 1.week, :at => "1:30 am" do
|
||||||
|
runner "WeeklyMaintenance.new.run"
|
||||||
|
end
|
||||||
|
|
||||||
every 8.hours do
|
every 8.hours do
|
||||||
command "psql --set statement_timeout=0 -hdbserver -c \"vacuum analyze;\" danbooru2"
|
command "psql --set statement_timeout=0 -hdbserver -c \"vacuum analyze;\" danbooru2"
|
||||||
end
|
end
|
||||||
|
|||||||
11
db/migrate/20130331180246_create_key_values.rb
Normal file
11
db/migrate/20130331180246_create_key_values.rb
Normal file
@@ -0,0 +1,11 @@
|
|||||||
|
class CreateKeyValues < ActiveRecord::Migration
|
||||||
|
def change
|
||||||
|
create_table :key_values do |t|
|
||||||
|
t.string :key, :null => false
|
||||||
|
t.text :value
|
||||||
|
t.timestamps
|
||||||
|
end
|
||||||
|
|
||||||
|
add_index :key_values, :key, :unique => true
|
||||||
|
end
|
||||||
|
end
|
||||||
@@ -1869,6 +1869,38 @@ CREATE SEQUENCE janitor_trials_id_seq
|
|||||||
ALTER SEQUENCE janitor_trials_id_seq OWNED BY janitor_trials.id;
|
ALTER SEQUENCE janitor_trials_id_seq OWNED BY janitor_trials.id;
|
||||||
|
|
||||||
|
|
||||||
|
--
|
||||||
|
-- Name: key_values; Type: TABLE; Schema: public; Owner: -; Tablespace:
|
||||||
|
--
|
||||||
|
|
||||||
|
CREATE TABLE key_values (
|
||||||
|
id integer NOT NULL,
|
||||||
|
key character varying(255) NOT NULL,
|
||||||
|
value text,
|
||||||
|
created_at timestamp without time zone NOT NULL,
|
||||||
|
updated_at timestamp without time zone NOT NULL
|
||||||
|
);
|
||||||
|
|
||||||
|
|
||||||
|
--
|
||||||
|
-- Name: key_values_id_seq; Type: SEQUENCE; Schema: public; Owner: -
|
||||||
|
--
|
||||||
|
|
||||||
|
CREATE SEQUENCE key_values_id_seq
|
||||||
|
START WITH 1
|
||||||
|
INCREMENT BY 1
|
||||||
|
NO MAXVALUE
|
||||||
|
NO MINVALUE
|
||||||
|
CACHE 1;
|
||||||
|
|
||||||
|
|
||||||
|
--
|
||||||
|
-- Name: key_values_id_seq; Type: SEQUENCE OWNED BY; Schema: public; Owner: -
|
||||||
|
--
|
||||||
|
|
||||||
|
ALTER SEQUENCE key_values_id_seq OWNED BY key_values.id;
|
||||||
|
|
||||||
|
|
||||||
--
|
--
|
||||||
-- Name: mod_actions; Type: TABLE; Schema: public; Owner: -; Tablespace:
|
-- Name: mod_actions; Type: TABLE; Schema: public; Owner: -; Tablespace:
|
||||||
--
|
--
|
||||||
@@ -3565,6 +3597,13 @@ ALTER TABLE ONLY ip_bans ALTER COLUMN id SET DEFAULT nextval('ip_bans_id_seq'::r
|
|||||||
ALTER TABLE ONLY janitor_trials ALTER COLUMN id SET DEFAULT nextval('janitor_trials_id_seq'::regclass);
|
ALTER TABLE ONLY janitor_trials ALTER COLUMN id SET DEFAULT nextval('janitor_trials_id_seq'::regclass);
|
||||||
|
|
||||||
|
|
||||||
|
--
|
||||||
|
-- Name: id; Type: DEFAULT; Schema: public; Owner: -
|
||||||
|
--
|
||||||
|
|
||||||
|
ALTER TABLE ONLY key_values ALTER COLUMN id SET DEFAULT nextval('key_values_id_seq'::regclass);
|
||||||
|
|
||||||
|
|
||||||
--
|
--
|
||||||
-- Name: id; Type: DEFAULT; Schema: public; Owner: -
|
-- Name: id; Type: DEFAULT; Schema: public; Owner: -
|
||||||
--
|
--
|
||||||
@@ -3854,6 +3893,14 @@ ALTER TABLE ONLY janitor_trials
|
|||||||
ADD CONSTRAINT janitor_trials_pkey PRIMARY KEY (id);
|
ADD CONSTRAINT janitor_trials_pkey PRIMARY KEY (id);
|
||||||
|
|
||||||
|
|
||||||
|
--
|
||||||
|
-- Name: key_values_pkey; Type: CONSTRAINT; Schema: public; Owner: -; Tablespace:
|
||||||
|
--
|
||||||
|
|
||||||
|
ALTER TABLE ONLY key_values
|
||||||
|
ADD CONSTRAINT key_values_pkey PRIMARY KEY (id);
|
||||||
|
|
||||||
|
|
||||||
--
|
--
|
||||||
-- Name: mod_actions_pkey; Type: CONSTRAINT; Schema: public; Owner: -; Tablespace:
|
-- Name: mod_actions_pkey; Type: CONSTRAINT; Schema: public; Owner: -; Tablespace:
|
||||||
--
|
--
|
||||||
@@ -5662,6 +5709,13 @@ CREATE UNIQUE INDEX index_ip_bans_on_ip_addr ON ip_bans USING btree (ip_addr);
|
|||||||
CREATE INDEX index_janitor_trials_on_user_id ON janitor_trials USING btree (user_id);
|
CREATE INDEX index_janitor_trials_on_user_id ON janitor_trials USING btree (user_id);
|
||||||
|
|
||||||
|
|
||||||
|
--
|
||||||
|
-- Name: index_key_values_on_key; Type: INDEX; Schema: public; Owner: -; Tablespace:
|
||||||
|
--
|
||||||
|
|
||||||
|
CREATE UNIQUE INDEX index_key_values_on_key ON key_values USING btree (key);
|
||||||
|
|
||||||
|
|
||||||
--
|
--
|
||||||
-- Name: index_news_updates_on_created_at; Type: INDEX; Schema: public; Owner: -; Tablespace:
|
-- Name: index_news_updates_on_created_at; Type: INDEX; Schema: public; Owner: -; Tablespace:
|
||||||
--
|
--
|
||||||
@@ -6354,4 +6408,6 @@ INSERT INTO schema_migrations (version) VALUES ('20130323160259');
|
|||||||
|
|
||||||
INSERT INTO schema_migrations (version) VALUES ('20130326035904');
|
INSERT INTO schema_migrations (version) VALUES ('20130326035904');
|
||||||
|
|
||||||
INSERT INTO schema_migrations (version) VALUES ('20130328092739');
|
INSERT INTO schema_migrations (version) VALUES ('20130328092739');
|
||||||
|
|
||||||
|
INSERT INTO schema_migrations (version) VALUES ('20130331180246');
|
||||||
1
public/cache/tags.json
vendored
Normal file
1
public/cache/tags.json
vendored
Normal file
File diff suppressed because one or more lines are too long
@@ -1,5 +1,6 @@
|
|||||||
#!/usr/bin/env ruby
|
#!/usr/bin/env ruby
|
||||||
|
|
||||||
require File.expand_path(File.join(File.dirname(__FILE__), '..', '..', 'config', 'environment'))
|
require File.expand_path(File.join(File.dirname(__FILE__), '..', '..', 'config', 'environment'))
|
||||||
require 'benchmark'
|
|
||||||
|
|
||||||
|
kv = KeyValue.find_or_create_by_key("ApiCacheGenerator.generate_tag_cache")
|
||||||
|
kv.update_attribute(:value, "0")
|
||||||
|
|||||||
Reference in New Issue
Block a user