Class TusExecutor


  • public abstract class TusExecutor
    extends java.lang.Object
    TusExecutor is a wrapper class which you can build around your uploading mechanism and any exception thrown by it will be caught and may result in a retry. This way you can easily add retrying functionality to your application with defined delays between them. This can be achieved by extending TusExecutor and implementing the abstract makeAttempt() method:
     
      TusExecutor executor = new TusExecutor() {
          {@literal @}Override
          protected void makeAttempt() throws ProtocolException, IOException {
              TusUploader uploader = client.resumeOrCreateUpload(upload);
              while(uploader.uploadChunk() > -1) {}
              uploader.finish();
          }
      };
      executor.makeAttempts();
     
     
    The retries are basically just calling the makeAttempt() method which should then retrieve an TusUploader using TusClient.resumeOrCreateUpload(TusUpload) and then invoke TusUploader.uploadChunk() as long as possible without catching ProtocolExceptions or IOExceptions as this is taken over by this class. The current attempt can be interrupted using Thread.interrupt() which will cause the makeAttempts() method to return false immediately.
    • Constructor Detail

      • TusExecutor

        public TusExecutor()
    • Method Detail

      • setDelays

        public void setDelays​(int[] delays)
        Set the delays at which TusExecutor will issue a retry if makeAttempt() throws an exception. If the methods call fails for the first time it will wait delays[0]ms before calling it again. If this second calls also does not return normally delays[1]ms will be waited on so on. It total delays.length retries may be issued, resulting in up to delays.length + 1 calls to makeAttempt(). The default delays are set to 500ms, 1s, 2s and 3s.
        Parameters:
        delays - The desired delay values to be used
        See Also:
        getDelays()
      • getDelays

        public int[] getDelays()
        Get the delays which will be used for waiting before attempting retries.
        Returns:
        The dalys previously set
        See Also:
        setDelays(int[])