blob: 69648d98a7b21f1029e9db40e2da146958135516 (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
|
# models/purge_request.rb:
# A queue of URLs to purge
#
# Copyright (c) 2008 UK Citizens Online Democracy. All rights reserved.
# Email: francis@mysociety.org; WWW: http://www.mysociety.org/
#
class PurgeRequest < ActiveRecord::Base
def self.purge_all
done_something = false
for item in PurgeRequest.all()
item.purge
done_something = true
end
return done_something
end
def self.purge_all_loop
# Run purge_all in an endless loop, sleeping when there is nothing to do
while true
sleep_seconds = 1
while !purge_all
sleep sleep_seconds
sleep_seconds *= 2
sleep_seconds = 30 if sleep_seconds > 30
end
end
end
def purge
config = MySociety::Config.load_default()
varnish_url = config['VARNISH_HOST']
result = quietly_try_to_purge(varnish_url, self.url)
self.delete()
end
end
# == Schema Information
#
# Table name: purge_requests
#
# id :integer not null, primary key
# url :string(255)
# created_at :datetime not null
# model :string(255) not null
# model_id :integer not null
#
|