Class AsyncResourceDisposer
java.lang.Object
hudson.model.AbstractModelObject
hudson.model.AdministrativeMonitor
org.jenkinsci.plugins.resourcedisposer.AsyncResourceDisposer
- All Implemented Interfaces:
ExtensionPoint
,ModelObject
,SearchableModelObject
,SearchItem
,Serializable
,org.kohsuke.stapler.StaplerProxy
Track resources to be disposed asynchronously.
In order to have resource disposed safely and eventual failures tracked for
Jenkins admins to see, register wrapped resources using
dispose(org.jenkinsci.plugins.resourcedisposer.Disposable...)
.
Implementation details: The disposer can be quite loaded during massive resource eviction. Therefore, the persisted
state is guaranteed to be preserved only for purposes of resource tracking but not necessarily with their individual
state. IOW, tracking adding and removing disposables is critical while tracking their state is not performed as it is
cheap to recalculate. Resource set is persisted when disposables are registered/unregistered and periodically to
capture successful resource removals. The last state is not part of the persisted data at all.- Author:
- ogondza
- See Also:
-
Nested Class Summary
Nested ClassesModifier and TypeClassDescriptionstatic class
Reschedule failed attempts.static final class
Disposable wrapper to be run in threadpool and track success/failure.Nested classes/interfaces inherited from interface hudson.ExtensionPoint
ExtensionPoint.LegacyInstancesAreScopedToHudson
-
Field Summary
Fields inherited from class hudson.model.AdministrativeMonitor
id
-
Constructor Summary
Constructors -
Method Summary
Modifier and TypeMethodDescriptionvoid
dispose
(Iterable<? extends Disposable> disposables) Schedule resource to be disposed.void
dispose
(Disposable... disposables) Schedule resource to be disposed.disposeAndWait
(Disposable disposable) Only exposed for testing.org.kohsuke.stapler.HttpResponse
doStopTracking
(int id, org.kohsuke.stapler.StaplerResponse2 rsp) static AsyncResourceDisposer
get()
Get list of resources do be disposed.boolean
void
Force rescheduling of all tracked tasks.void
reset()
Methods inherited from class hudson.model.AdministrativeMonitor
all, checkRequiredPermission, disable, doDisable, getRequiredPermission, getSearchUrl, getTarget, getUrl, hasPermissionToDisplay, hasRequiredPermission, isEnabled, isSecurity
Methods inherited from class hudson.model.AbstractModelObject
getSearch, getSearchIndex, getSearchName, makeSearchIndex, requirePOST, sendError, sendError, sendError, sendError, sendError, sendError, sendError, sendError
-
Constructor Details
-
AsyncResourceDisposer
public AsyncResourceDisposer()
-
-
Method Details
-
get
-
getBacklog
Get list of resources do be disposed.- Returns:
- Entries to be processed.
-
getDisplayName
- Specified by:
getDisplayName
in interfaceModelObject
- Overrides:
getDisplayName
in classAdministrativeMonitor
-
isActivated
public boolean isActivated()- Specified by:
isActivated
in classAdministrativeMonitor
-
dispose
Schedule resource to be disposed.- Parameters:
disposables
- Resource wrappers to be deleted.
-
dispose
Schedule resource to be disposed.- Parameters:
disposables
- Resource wrappers to be deleted.
-
doStopTracking
@Restricted(org.kohsuke.accmod.restrictions.DoNotUse.class) public org.kohsuke.stapler.HttpResponse doStopTracking(@QueryParameter int id, org.kohsuke.stapler.StaplerResponse2 rsp) -
reschedule
public void reschedule()Force rescheduling of all tracked tasks. -
disposeAndWait
Only exposed for testing. Dispose providing Future to wait for first dispose cycle to complete. -
reset
public void reset()
-