BigW Consortium Gitlab
Skip to content
Projects
Groups
Snippets
Help
This project
Loading...
Sign in / Register
Toggle navigation
G
gitlab-ce
Project
Overview
Details
Activity
Cycle Analytics
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
Issues
0
Issues
0
List
Board
Labels
Milestones
Merge Requests
0
Merge Requests
0
Registry
Registry
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Charts
Create a new issue
Commits
Issue Boards
Open sidebar
Forest Godfrey
gitlab-ce
Commits
e9819de1
Commit
e9819de1
authored
Apr 10, 2017
by
Nick Thomas
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
Remove the ClearDatabaseCacheWorker
parent
6647542c
Show whitespace changes
Inline
Side-by-side
Showing
5 changed files
with
4 additions
and
70 deletions
+4
-70
cache_markdown_field.rb
app/models/concerns/cache_markdown_field.rb
+0
-25
clear_database_cache_worker.rb
app/workers/clear_database_cache_worker.rb
+0
-24
sidekiq_queues.yml
config/sidekiq_queues.yml
+0
-1
cache.rake
lib/tasks/cache.rake
+1
-6
cache_markdown_field_spec.rb
spec/models/concerns/cache_markdown_field_spec.rb
+3
-14
No files found.
app/models/concerns/cache_markdown_field.rb
View file @
e9819de1
...
...
@@ -30,28 +30,6 @@ module CacheMarkdownField
end
end
# Dynamic registries don't really work in Rails as it's not guaranteed that
# every class will be loaded, so hardcode the list.
CACHING_CLASSES
=
%w[
AbuseReport
Appearance
ApplicationSetting
BroadcastMessage
Issue
Label
MergeRequest
Milestone
Namespace
Note
Project
Release
Snippet
]
.
freeze
def
self
.
caching_classes
CACHING_CLASSES
.
map
(
&
:constantize
)
end
def
skip_project_check?
false
end
...
...
@@ -107,9 +85,6 @@ module CacheMarkdownField
# a corresponding _html field. Any custom rendering options may be provided
# as a context.
def
cache_markdown_field
(
markdown_field
,
context
=
{})
raise
"Add
#{
self
}
to CacheMarkdownField::CACHING_CLASSES"
unless
CacheMarkdownField
::
CACHING_CLASSES
.
include?
(
self
.
to_s
)
cached_markdown_fields
[
markdown_field
]
=
context
html_field
=
cached_markdown_fields
.
html_field
(
markdown_field
)
...
...
app/workers/clear_database_cache_worker.rb
deleted
100644 → 0
View file @
6647542c
# This worker clears all cache fields in the database, working in batches.
class
ClearDatabaseCacheWorker
include
Sidekiq
::
Worker
include
DedicatedSidekiqQueue
BATCH_SIZE
=
1000
def
perform
CacheMarkdownField
.
caching_classes
.
each
do
|
kls
|
fields
=
kls
.
cached_markdown_fields
.
html_fields
clear_cache_fields
=
fields
.
each_with_object
({})
do
|
field
,
memo
|
memo
[
field
]
=
nil
end
Rails
.
logger
.
debug
(
"Clearing Markdown cache for
#{
kls
}
:
#{
fields
.
inspect
}
"
)
kls
.
unscoped
.
in_batches
(
of:
BATCH_SIZE
)
do
|
relation
|
relation
.
update_all
(
clear_cache_fields
)
end
end
nil
end
end
config/sidekiq_queues.yml
View file @
e9819de1
...
...
@@ -34,7 +34,6 @@
-
[
repository_fork
,
1
]
-
[
repository_import
,
1
]
-
[
project_service
,
1
]
-
[
clear_database_cache
,
1
]
-
[
delete_user
,
1
]
-
[
delete_merged_branches
,
1
]
-
[
authorized_projects
,
1
]
...
...
lib/tasks/cache.rake
View file @
e9819de1
...
...
@@ -21,12 +21,7 @@ namespace :cache do
end
end
desc
"GitLab | Clear database cache (in the background)"
task
db: :environment
do
ClearDatabaseCacheWorker
.
perform_async
end
task
all:
[
:db
,
:redis
]
task
all:
[
:redis
]
end
task
clear:
'cache:clear:redis'
...
...
spec/models/concerns/cache_markdown_field_spec.rb
View file @
e9819de1
require
'spec_helper'
describe
CacheMarkdownField
do
caching_classes
=
CacheMarkdownField
::
CACHING_CLASSES
CacheMarkdownField
::
CACHING_CLASSES
=
[
"ThingWithMarkdownFields"
].
freeze
# The minimum necessary ActiveModel to test this concern
class
ThingWithMarkdownFields
include
ActiveModel
::
Model
...
...
@@ -55,8 +52,6 @@ describe CacheMarkdownField do
end
end
CacheMarkdownField
::
CACHING_CLASSES
=
caching_classes
def
thing_subclass
(
new_attr
)
Class
.
new
(
ThingWithMarkdownFields
)
{
add_attr
(
new_attr
)
}
end
...
...
@@ -69,15 +64,9 @@ describe CacheMarkdownField do
subject
{
ThingWithMarkdownFields
.
new
(
foo:
markdown
,
foo_html:
html
)
}
describe
".attributes"
do
it
"excludes cache attributes"
do
expect
(
thing_subclass
(
:qux
).
new
.
attributes
.
keys
.
sort
).
to
eq
(
%w[bar baz foo qux]
)
end
end
describe
".cache_markdown_field"
do
it
"refuses to allow untracked classes"
do
expect
{
thing_subclass
(
:qux
).
__send__
(
:cache_markdown_field
,
:qux
)
}.
to
raise_error
(
RuntimeError
)
describe
'.attributes'
do
it
'excludes cache attributes'
do
expect
(
subject
.
attributes
.
keys
.
sort
).
to
eq
(
%w[bar baz foo]
)
end
end
...
...
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment