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);
}
}
}
}
}
});
}