2
0
mirror of https://github.com/esiur/esiur-dotnet.git synced 2026-06-13 14:38:43 +00:00
Files
esiur-dotnet/Tests/Distribution/Queueing/Server/Program.cs
T
2026-06-05 18:10:53 +03:00

44 lines
1.4 KiB
C#

// ============================================================
// Test 4: Fork-Join Queueing Test — SERVER NODE//
// Usage: dotnet run -- --port 10901
// ============================================================
using Esiur.Resource;
using Esiur.Stores;
using Esiur.Protocol;
using Esiur.Tests.Queueing.Server;
var port = int.Parse(GetArg(args, "--port", "10901"));
Console.WriteLine($"[Server] Listening on port {port}...");
var wh = Warehouse.Default;
var mem = await wh.Put("sys", new MemoryStore());
var service = await wh.Put("sys/queueing", new QueueingService());
var server = await wh.Put("sys/server", new EpServer() { Port = (ushort)port,
EntryPoint = service,
AllowUnauthorizedAccess = true });
long memBefore = GC.GetTotalMemory(forceFullCollection: true);
await wh.Open();
long memAfter = GC.GetTotalMemory(forceFullCollection: true);
double memMB = (memAfter - memBefore) / (1024.0 * 1024.0);
Console.WriteLine("Ready. Press Ctrl+C to stop.");
var stop = new TaskCompletionSource();
Console.CancelKeyPress += (_, e) => { e.Cancel = true; stop.TrySetResult(); };
await stop.Task;
await wh.Close();
static string GetArg(string[] args, string key, string def)
{
int i = Array.IndexOf(args, key);
return (i >= 0 && i + 1 < args.Length) ? args[i + 1] : def;
}