Skip to content

Commit 4b8b8cc

Browse files
committed
Allow testing the WorkerManager
1 parent 2865a6e commit 4b8b8cc

2 files changed

Lines changed: 26 additions & 16 deletions

File tree

Refresh.Workers/WorkerManager.cs

Lines changed: 19 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -42,7 +42,7 @@ public void AddJob(WorkerJob worker)
4242
this._jobs.Add(worker);
4343
}
4444

45-
private void RunWorkCycle()
45+
public void RunWorkCycle()
4646
{
4747
WorkContext context = new()
4848
{
@@ -99,25 +99,30 @@ private void RunWorkCycle()
9999
}
100100
}
101101

102+
public void RemoveUnusedJobStates()
103+
{
104+
GameDatabaseContext database = this._databaseProvider.GetContext();
105+
string[] jobsFromWorkerManager = this._jobs.Select(j => j.GetType().Name).ToArray();
106+
string[] jobsFromDatabase = database.GetAllJobIds(WorkerClass.Refresh).ToArray();
107+
108+
foreach (string jobId in jobsFromDatabase)
109+
{
110+
if (!jobsFromWorkerManager.Any(j => j == jobId))
111+
{
112+
this._logger.LogInfo(RefreshContext.Worker, $"Removing job state for {jobId} because it doesn't exist in RefreshWorkerManager (likely from a newer/different Refresh build).");
113+
database.RemoveJobState(jobId, false);
114+
}
115+
}
116+
database.SaveChanges();
117+
}
118+
102119
public void Start()
103120
{
104121
this._logger.LogDebug(RefreshContext.Startup, "Starting the worker thread");
105122
this._threadShouldRun = true;
106123
Thread thread = new(() =>
107124
{
108-
GameDatabaseContext database = this._databaseProvider.GetContext();
109-
string[] jobsFromWorkerManager = this._jobs.Select(j => j.GetType().Name).ToArray();
110-
string[] jobsFromDatabase = database.GetAllJobIds(WorkerClass.Refresh).ToArray();
111-
112-
foreach (string jobId in jobsFromDatabase)
113-
{
114-
if (!jobsFromWorkerManager.Any(j => j == jobId))
115-
{
116-
this._logger.LogInfo(RefreshContext.Worker, $"Removing job state for {jobId} because it doesn't exist in RefreshWorkerManager (likely from a newer/different Refresh build).");
117-
database.RemoveJobState(jobId, false);
118-
}
119-
}
120-
database.SaveChanges();
125+
this.RemoveUnusedJobStates();
121126

122127
while (this._threadShouldRun)
123128
{

RefreshTests.GameServer/TestContext.cs

Lines changed: 7 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -237,11 +237,16 @@ public WorkContext GetWorkContext()
237237
{
238238
Database = this.Database,
239239
Logger = this.Server.Value.Logger,
240-
DataStore = (IDataStore)this.GetService<StorageService>()
241-
.AddParameterToEndpoint(null!, new BunkumParameterInfo(typeof(IDataStore), ""), null!)!,
240+
DataStore = this.GetDataStore(),
242241
};
243242
}
244243

244+
public IDataStore GetDataStore()
245+
{
246+
return (IDataStore)this.GetService<StorageService>()
247+
.AddParameterToEndpoint(null!, new BunkumParameterInfo(typeof(IDataStore), ""), null!)!;
248+
}
249+
245250
public void Dispose()
246251
{
247252
this.Database.Dispose();

0 commit comments

Comments
 (0)