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 classReschedule failed attempts.static final classDisposable 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 TypeMethodDescriptionvoiddispose(Iterable<? extends Disposable> disposables) Schedule resource to be disposed.voiddispose(Disposable... disposables) Schedule resource to be disposed.disposeAndWait(Disposable disposable) Only exposed for testing.org.kohsuke.stapler.HttpResponsedoStopTracking(int id, org.kohsuke.stapler.StaplerResponse2 rsp) static AsyncResourceDisposerget()Get list of resources do be disposed.booleanvoidForce rescheduling of all tracked tasks.voidreset()Methods inherited from class hudson.model.AdministrativeMonitor
all, checkRequiredPermission, disable, doDisable, getRequiredPermission, getSearchUrl, getTarget, getUrl, hasPermissionToDisplay, hasRequiredPermission, isEnabled, isSecurityMethods 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:
getDisplayNamein interfaceModelObject- Overrides:
getDisplayNamein classAdministrativeMonitor
-
isActivated
public boolean isActivated()- Specified by:
isActivatedin 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()
-