public TorrentFilesFactoryImpl()

in agent/src/main/java/jetbrains/buildServer/torrent/TorrentFilesFactoryImpl.java [33:66]


  public TorrentFilesFactoryImpl(@NotNull BuildAgentConfiguration agentConfiguration,
                                 @NotNull TorrentConfiguration configuration,
                                 @NotNull AgentIdleTasks agentIdleTasks,
                                 @NotNull final AgentTorrentsSeeder torrentsSeeder) {
    myConfiguration = configuration;
    myTorrentFilesDir = agentConfiguration.getCacheDirectory(Constants.TORRENTS_DIRNAME);
    myRandom = new Random(System.currentTimeMillis());
    agentIdleTasks.addRecurringTask(new AgentIdleTasks.Task() {
      @NotNull
      public String getName() {
        return "Torrent files cleaner";
      }

      public void execute(@NotNull InterruptState interruptState) {
        Set<File> registeredTorrentFiles = torrentsSeeder.getRegisteredTorrentFiles();

        File[] dirs = myTorrentFilesDir.listFiles();
        if (dirs != null) {
          for (File dir: dirs) {
            if (interruptState.isInterrupted()) return;
            if (!dir.isDirectory()) continue;
            File[] files = dir.listFiles();
            if (files != null) {
              for (File f: files) {
                if (interruptState.isInterrupted()) return;
                if (registeredTorrentFiles.contains(f)) continue;
                FileUtil.delete(f);
              }
            }
          }
        }
      }
    });
  }