mirror of
https://github.com/logos-storage/logos-storage-nim-cs-dist-tests.git
synced 2026-08-01 19:53:27 +00:00
attempt to fix saving of the folder file
This commit is contained in:
parent
433008b1d0
commit
d521a51549
@ -5,7 +5,7 @@ namespace AutoClient.Modes.FolderStore
|
||||
{
|
||||
public class FolderSaver : IFileSaverEventHandler
|
||||
{
|
||||
private const string FolderSaverFilename = "foldersaver.json";
|
||||
public const string FolderSaverFilename = "foldersaver.json";
|
||||
private readonly App app;
|
||||
private readonly LoadBalancer loadBalancer;
|
||||
private readonly JsonFile<FolderStatus> statusFile;
|
||||
@ -52,6 +52,8 @@ namespace AutoClient.Modes.FolderStore
|
||||
SaveChanges();
|
||||
Thread.Sleep(100);
|
||||
}
|
||||
|
||||
app.Log.Log("All files processed.");
|
||||
}
|
||||
|
||||
private void CheckAndSaveChanges()
|
||||
@ -105,20 +107,9 @@ namespace AutoClient.Modes.FolderStore
|
||||
Filename = FolderSaverFilename
|
||||
};
|
||||
var folderFile = Path.Combine(app.Config.FolderToStore, FolderSaverFilename);
|
||||
var cidsFile = Path.Combine(app.Config.DataPath, "cids.log");
|
||||
ApplyPadding(folderFile);
|
||||
var fileSaver = CreateFileSaver(folderFile, entry);
|
||||
var fileSaver = CreateFileSaver(folderFile, entry, new FolderSaveResultHandler(app, entry));
|
||||
fileSaver.Process();
|
||||
|
||||
if (!string.IsNullOrEmpty(entry.EncodedCid))
|
||||
{
|
||||
app.Log.Log($"!!! {FolderSaverFilename} saved to CID '{entry.EncodedCid}' !!!");
|
||||
File.AppendAllLines(cidsFile, [entry.EncodedCid]);
|
||||
}
|
||||
else
|
||||
{
|
||||
app.Log.Error($"Failed to store {FolderSaverFilename} :|");
|
||||
}
|
||||
}
|
||||
|
||||
private const int MinCodexStorageFilesize = 262144;
|
||||
@ -136,16 +127,21 @@ namespace AutoClient.Modes.FolderStore
|
||||
lock (statusLock)
|
||||
{
|
||||
status.Padding = paddingMessage + RandomUtils.GenerateRandomString(required);
|
||||
statusFile.Save(status);
|
||||
}
|
||||
SaveChanges();
|
||||
}
|
||||
}
|
||||
|
||||
private FileSaver CreateFileSaver(string folderFile, FileStatus entry)
|
||||
{
|
||||
return CreateFileSaver(folderFile, entry, slowModeHandler);
|
||||
}
|
||||
|
||||
private FileSaver CreateFileSaver(string folderFile, FileStatus entry, IFileSaverResultHandler resultHandler)
|
||||
{
|
||||
var fixedLength = entry.Filename.PadRight(35);
|
||||
var prefix = $"[{fixedLength}] ";
|
||||
return new FileSaver(new LogPrefixer(app.Log, prefix), loadBalancer, status.Stats, folderFile, entry, this, slowModeHandler);
|
||||
return new FileSaver(new LogPrefixer(app.Log, prefix), loadBalancer, status.Stats, folderFile, entry, this, resultHandler);
|
||||
}
|
||||
|
||||
public void SaveChanges()
|
||||
@ -157,4 +153,36 @@ namespace AutoClient.Modes.FolderStore
|
||||
changeCounter++;
|
||||
}
|
||||
}
|
||||
|
||||
public class FolderSaveResultHandler : IFileSaverResultHandler
|
||||
{
|
||||
private readonly App app;
|
||||
private readonly FileStatus entry;
|
||||
|
||||
public FolderSaveResultHandler(App app, FileStatus entry)
|
||||
{
|
||||
this.app = app;
|
||||
this.entry = entry;
|
||||
}
|
||||
|
||||
public void OnFailure()
|
||||
{
|
||||
app.Log.Error($"Failed to store {FolderSaver.FolderSaverFilename} :|");
|
||||
}
|
||||
|
||||
public void OnSuccess()
|
||||
{
|
||||
if (!string.IsNullOrEmpty(entry.EncodedCid))
|
||||
{
|
||||
var cidsFile = Path.Combine(app.Config.DataPath, "cids.log");
|
||||
File.AppendAllLines(cidsFile, [entry.EncodedCid]);
|
||||
app.Log.Log($"!!! {FolderSaver.FolderSaverFilename} saved to CID '{entry.EncodedCid}' !!!");
|
||||
}
|
||||
else
|
||||
{
|
||||
|
||||
app.Log.Error($"Foldersaver entry didn't have encoded CID somehow :|");
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@ -24,6 +24,7 @@ namespace AutoClient.Modes
|
||||
while (!app.Cts.IsCancellationRequested)
|
||||
{
|
||||
saver.Run();
|
||||
Thread.Sleep(TimeSpan.FromHours(1.0));
|
||||
}
|
||||
}
|
||||
catch (Exception ex)
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user