Package hudson.slaves

Class CloudSlaveRetentionStrategy<T extends Computer>

  • All Implemented Interfaces:
    ExtensionPoint, Describable<RetentionStrategy<?>>

    public class CloudSlaveRetentionStrategy<T extends Computer>
    extends RetentionStrategy<T>
    Default convenience implementation of RetentionStrategy for agents provisioned from Cloud. If an agent is idle for 10 mins, this retention strategy will remove the agent. This can be used as-is for a Node provisioned by cloud to implement the auto-scaling semantics, it can be subtyped to tweak the behavior, or it can be used as an example.

    TODO CloudRetentionStrategy seems to be a better implementation.

    Since:
    1.510
    Author:
    Kohsuke Kawaguchi
    • Field Detail

      • TIMEOUT

        public static long TIMEOUT
    • Constructor Detail

      • CloudSlaveRetentionStrategy

        public CloudSlaveRetentionStrategy()
    • Method Detail

      • check

        public long check​(T c)
        Description copied from class: RetentionStrategy
        This method will be called periodically to allow this strategy to decide what to do with its owning agent.
        Specified by:
        check in class RetentionStrategy<T extends Computer>
        Parameters:
        c - Computer for which this strategy is assigned. This computer may be online or offline. This object also exposes a bunch of properties that the callee can use to decide what action to take.
        Returns:
        The number of minutes after which the strategy would like to be checked again. The strategy may be rechecked earlier or later than this!
      • checkCycle

        protected long checkCycle()
        When do we check again next time?
      • isIdleForTooLong

        protected boolean isIdleForTooLong​(T c)
        Has this computer been idle for too long?
      • getIdleMaxTime

        protected long getIdleMaxTime()
        If the computer has been idle longer than this time, we'll kill the agent.