Skip to content
GitLab
Projects
Groups
Snippets
Help
Loading...
Help
Help
Support
Community forum
Keyboard shortcuts
?
Submit feedback
Contribute to GitLab
Sign in / Register
Toggle navigation
Docker-in-Docker (DinD) capabilities of public runners deactivated.
More info
Open sidebar
pipelet
Pipelet
Commits
189934f7
Commit
189934f7
authored
Sep 20, 2018
by
Betoule Marc
Browse files
Make a tool to stop schedulers gracefully
parent
9d656c18
Changes
2
Hide whitespace changes
Inline
Side-by-side
Showing
2 changed files
with
14 additions
and
2 deletions
+14
-2
pipelet/launchers.py
pipelet/launchers.py
+8
-2
pipelet/worker.py
pipelet/worker.py
+6
-0
No files found.
pipelet/launchers.py
View file @
189934f7
...
...
@@ -558,6 +558,8 @@ if __name__ == "__main__":
help
=
'worker log filename'
)
parser
.
add_option
(
'-N'
,
'--maximum-number-of-tasks'
,
dest
=
'max_number_tasks'
,
default
=
None
,
type
=
int
,
help
=
'Make worker exit gracefully after a fix number of jobs'
)
parser
.
add_option
(
'-A'
,
'--abort'
,
dest
=
'abort'
,
default
=
False
,
action
=
'store_true'
,
help
=
'Ask the scheduler to stop'
)
# parser.add_option('-L', '--log-level', metavar='level',
# type=
# help='worker log filename')
...
...
@@ -567,7 +569,11 @@ if __name__ == "__main__":
# print options.secret
name
=
options
.
logfile
.
split
(
"_"
)[
-
1
]
wl
=
init_logger
(
name
,
options
.
logfile
)
w
=
worker
.
ProcessWorker
(
address
=
(
options
.
host
,
options
.
port
),
authkey
=
options
.
secret
,
logger
=
wl
)
if
options
.
abort
:
w
=
worker
.
StopWorker
(
address
=
(
options
.
host
,
options
.
port
),
authkey
=
options
.
secret
,
logger
=
wl
)
else
:
w
=
worker
.
ProcessWorker
(
address
=
(
options
.
host
,
options
.
port
),
authkey
=
options
.
secret
,
logger
=
wl
)
sys
.
argv
=
[
sys
.
argv
[
0
]]
# do not propage command line argument to script
w
.
run
(
maximum_task_number
=
options
.
max_number_tasks
)
pipelet/worker.py
View file @
189934f7
...
...
@@ -339,3 +339,9 @@ class _FakeWorker(ProcessWorker):
def
execute_task
(
self
,
task
):
task
.
task_output
=
range
(
10
)
return
task
class
StopWorker
(
ProcessWorker
):
def
run
(
self
,
**
keys
):
self
.
logger
.
info
(
'Asking the scheduler to stop'
)
self
.
scheduler
.
abort_scheduling
(
None
)
self
.
logger
.
info
(
'Stop request send'
)
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