feat: allow graceful shutdowns (#546)

Add a `Shutdown(context.Context) error` method to the Poller. Calling this method will first shutdown all active polling, preventing any new jobs from spawning. It will then wait for either all jobs to finish, or for the context to be cancelled. If the context is cancelled, it will then force all jobs to end, and then exit.

Fixes https://gitea.com/gitea/act_runner/issues/107

Co-authored-by: Rowan Bohde <[email protected]>
Reviewed-on: https://gitea.com/gitea/act_runner/pulls/546
Reviewed-by: Jason Song <[email protected]>
Reviewed-by: Lunny Xiao <[email protected]>
Co-authored-by: rowan-allspice <[email protected]>
Co-committed-by: rowan-allspice <[email protected]>
This commit is contained in:
rowan-allspiceandRowan Bohde authored and Lunny Xiao committed 2024-05-27 07:38:55 +00:00
1 parent 1735b26e66
commit d1d3cad4b0
5 files changed
+87 -18

No files matched your search

+1 -1
View File
@@ -54,4 +54,4 @@ fi
unset GITEA_RUNNER_REGISTRATION_TOKEN
unset GITEA_RUNNER_REGISTRATION_TOKEN_FILE
act_runner daemon ${CONFIG_ARG}
exec act_runner daemon ${CONFIG_ARG}