From 5b03d610a1f5301846b4fe6cfe5640dd77ae0298 Mon Sep 17 00:00:00 2001 From: blattersturm Date: Sat, 25 May 2019 17:30:46 +0200 Subject: [PATCH] Add resources to a migration queue. --- server/Main.cs | 26 ++++++++++++++++++++------ 1 file changed, 20 insertions(+), 6 deletions(-) diff --git a/server/Main.cs b/server/Main.cs index 94abfe7..a5b09d4 100644 --- a/server/Main.cs +++ b/server/Main.cs @@ -30,6 +30,8 @@ public class Main : BaseScript { private bool m_ticked; + private readonly Queue m_migrationQueue = new Queue(); + public Main() { Debug.WriteLine(typeof(MySql.Data.MySqlClient.MySqlConnection).Name); @@ -40,6 +42,23 @@ public Main() [EventHandler("onServerResourceStart")] public async void OnServerResourceStart(string resourceName) + { + m_migrationQueue.Enqueue(resourceName); + } + + [Tick] + public async Task RunTick() + { + m_ticked = true; + + while (m_migrationQueue.Count > 0) + { + await Delay(0); + await MigrateResource(m_migrationQueue.Dequeue()); + } + } + + private async Task MigrateResource(string resourceName) { var cs = GetConvar("mysql_connection_string", ""); var numMetaData = GetNumResourceMetadata(resourceName, "migration_file"); @@ -110,12 +129,6 @@ public async void OnServerResourceStart(string resourceName) } } - [Tick] - public void RunTick() - { - m_ticked = true; - } - private async Task LoadMigrationAssembly(string resourceName, string fileName) { var fileData = LoadResourceFile(resourceName, fileName); @@ -162,6 +175,7 @@ private async Task LoadMigrationAssembly(string resourceName, string f MetadataReference.CreateFromStream(migratorStream), MetadataReference.CreateFromStream(migratorStreamTwo) ) + .AddSyntaxTrees(syntaxTree); using (var peStream = new MemoryStream())