Skip to content
Projects
Groups
Snippets
Help
Loading...
Help
Support
Keyboard shortcuts
?
Submit feedback
Contribute to GitLab
Sign in / Register
Toggle navigation
G
gitlab-ce
Project overview
Project overview
Details
Activity
Releases
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Issues
0
Issues
0
List
Boards
Labels
Milestones
Merge Requests
0
Merge Requests
0
Analytics
Analytics
Repository
Value Stream
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Create a new issue
Commits
Issue Boards
Open sidebar
Boxiang Sun
gitlab-ce
Commits
25810d03
Commit
25810d03
authored
May 02, 2018
by
Shinya Maeda
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
Added flush-to-db process for the cron worker. Rename to RescueStaleLiveTraceWorker.
parent
93103bb0
Changes
4
Show whitespace changes
Inline
Side-by-side
Showing
4 changed files
with
43 additions
and
27 deletions
+43
-27
app/workers/all_queues.yml
app/workers/all_queues.yml
+1
-1
app/workers/fource_archive_stale_live_trace_worker.rb
app/workers/fource_archive_stale_live_trace_worker.rb
+0
-23
app/workers/rescue_stale_live_trace_worker.rb
app/workers/rescue_stale_live_trace_worker.rb
+39
-0
config/initializers/1_settings.rb
config/initializers/1_settings.rb
+3
-3
No files found.
app/workers/all_queues.yml
View file @
25810d03
...
@@ -17,7 +17,7 @@
...
@@ -17,7 +17,7 @@
-
cronjob:stuck_ci_jobs
-
cronjob:stuck_ci_jobs
-
cronjob:stuck_import_jobs
-
cronjob:stuck_import_jobs
-
cronjob:stuck_merge_jobs
-
cronjob:stuck_merge_jobs
-
cronjob:
fource_archiv
e_stale_live_trace
-
cronjob:
rescu
e_stale_live_trace
-
cronjob:trending_projects
-
cronjob:trending_projects
-
cronjob:issue_due_scheduler
-
cronjob:issue_due_scheduler
...
...
app/workers/fource_archive_stale_live_trace_worker.rb
deleted
100644 → 0
View file @
93103bb0
class
FourceArchiveStaleLiveTraceWorker
include
ApplicationWorker
include
CronjobQueue
def
perform
# Find jobs with the following condition
# - Finished 4 hours ago (Jobs finished 4 hours ago should have an archived trace)
# - Not archived yet (Because ArchiveTraceWorker failed by some reason)
Ci
::
Build
.
finished
.
where
(
'finished_at < ?'
,
4
.
hours
.
ago
)
.
where
(
'NOT EXISTS (?)'
,
Ci
::
JobArtifact
.
select
(
1
).
trace
.
where
(
'ci_builds.id = ci_job_artifacts.job_id'
))
.
find_each
(
batch_size:
1000
)
do
|
job
|
begin
job
.
trace
.
archive!
rescue
=>
e
Rails
.
logger
.
error
"
#{
job
.
id
}
: Failed to archive stable live trace:
#{
e
.
message
}
"
end
Rails
.
logger
.
warning
"
#{
job
.
id
}
: Live trace was force archived because it was considered as stale"
end
end
end
end
app/workers/rescue_stale_live_trace_worker.rb
0 → 100644
View file @
25810d03
class
RescueStaleLiveTraceWorker
include
ApplicationWorker
include
CronjobQueue
def
perform
# Reschedule to archive live traces
#
# The target jobs are with the following conditions
# - Finished 4 hours ago, but it's not archived yet
# Jobs finished 4 hours ago should have an archived trace. Probably ArchiveTraceWorker failed by Sidekiq's inconsistancy
Ci
::
Build
.
finished
.
where
(
'finished_at BETWEEN ? AND ?'
,
1
.
week
.
ago
,
4
.
hours
.
ago
)
.
where
(
'NOT EXISTS (?)'
,
Ci
::
JobArtifact
.
select
(
1
).
trace
.
where
(
'ci_builds.id = ci_job_artifacts.job_id'
))
.
find_in_batch
(
batch_size:
1000
)
do
|
jobs
|
job_ids
=
jobs
.
map
{
|
job
|
[
job
.
id
]
}
ArchiveTraceWorker
.
bulk_perform_async
(
job_ids
)
Rails
.
logger
.
warning
"Scheduled to archive stale live traces from
#{
job_ids
.
min
}
to
#{
job_ids
.
max
}
"
end
# Schedule to flush redis-chunk to database
#
# The target build_trace_chunks are with the following conditions
# - The last patching of the trace was 1 hour ago
# - The job is still running
Ci
::
BuildTraceChunk
.
redis
.
joins
(
:build
)
.
where
(
'ci_builds.update_at < ?'
,
1
.
hour
.
ago
)
.
where
(
'ci_builds.status = ?'
,
'running'
)
.
find_in_batch
(
batch_size:
1000
)
do
|
build_trace_chunks
|
build_trace_chunk_ids
=
build_trace_chunks
.
map
{
|
build_trace_chunk
|
[
build_trace_chunk
.
id
]
}
BuildTraceChunkFlushToDBWorker
.
bulk_perform_async
(
build_trace_chunk_ids
)
Rails
.
logger
.
warning
"Scheduled to flush stale live traces to database from
#{
build_trace_chunk_ids
.
min
}
to
#{
build_trace_chunk_ids
.
max
}
"
end
end
end
config/initializers/1_settings.rb
View file @
25810d03
...
@@ -289,9 +289,9 @@ Settings.cron_jobs['repository_archive_cache_worker']['job_class'] = 'Repository
...
@@ -289,9 +289,9 @@ Settings.cron_jobs['repository_archive_cache_worker']['job_class'] = 'Repository
Settings
.
cron_jobs
[
'import_export_project_cleanup_worker'
]
||=
Settingslogic
.
new
({})
Settings
.
cron_jobs
[
'import_export_project_cleanup_worker'
]
||=
Settingslogic
.
new
({})
Settings
.
cron_jobs
[
'import_export_project_cleanup_worker'
][
'cron'
]
||=
'0 * * * *'
Settings
.
cron_jobs
[
'import_export_project_cleanup_worker'
][
'cron'
]
||=
'0 * * * *'
Settings
.
cron_jobs
[
'import_export_project_cleanup_worker'
][
'job_class'
]
=
'ImportExportProjectCleanupWorker'
Settings
.
cron_jobs
[
'import_export_project_cleanup_worker'
][
'job_class'
]
=
'ImportExportProjectCleanupWorker'
Settings
.
cron_jobs
[
'
fource_archiv
e_stale_live_trace_worker'
]
||=
Settingslogic
.
new
({})
Settings
.
cron_jobs
[
'
rescu
e_stale_live_trace_worker'
]
||=
Settingslogic
.
new
({})
Settings
.
cron_jobs
[
'
fource_archive_stale_live_trace_worker'
][
'cron'
]
||=
'*/4
* * * *'
Settings
.
cron_jobs
[
'
rescue_stale_live_trace_worker'
][
'cron'
]
||=
'*/1
* * * *'
Settings
.
cron_jobs
[
'
fource_archiv
e_stale_live_trace_worker'
][
'job_class'
]
=
'BuildTraceChunkArchiveStaleObjectsWorker'
Settings
.
cron_jobs
[
'
rescu
e_stale_live_trace_worker'
][
'job_class'
]
=
'BuildTraceChunkArchiveStaleObjectsWorker'
Settings
.
cron_jobs
[
'requests_profiles_worker'
]
||=
Settingslogic
.
new
({})
Settings
.
cron_jobs
[
'requests_profiles_worker'
]
||=
Settingslogic
.
new
({})
Settings
.
cron_jobs
[
'requests_profiles_worker'
][
'cron'
]
||=
'0 0 * * *'
Settings
.
cron_jobs
[
'requests_profiles_worker'
][
'cron'
]
||=
'0 0 * * *'
Settings
.
cron_jobs
[
'requests_profiles_worker'
][
'job_class'
]
=
'RequestsProfilesWorker'
Settings
.
cron_jobs
[
'requests_profiles_worker'
][
'job_class'
]
=
'RequestsProfilesWorker'
...
...
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