Browse Source

Small improvements.

pull/169/head
Sebastian Stehle 9 years ago
parent
commit
b2b58131da
  1. 38
      src/Squidex.Infrastructure/Log/Internal/ConsoleLogProcessor.cs
  2. 1
      src/Squidex.Infrastructure/Squidex.Infrastructure.csproj
  3. 2
      src/Squidex/Config/Orleans/SiloExtensions.cs
  4. 4
      src/Squidex/Config/Orleans/SiloServices.cs
  5. 2
      src/Squidex/Program.cs

38
src/Squidex.Infrastructure/Log/Internal/ConsoleLogProcessor.cs

@ -14,7 +14,7 @@ using System.Threading.Tasks;
namespace Squidex.Infrastructure.Log.Internal namespace Squidex.Infrastructure.Log.Internal
{ {
public class ConsoleLogProcessor : DisposableObjectBase public sealed class ConsoleLogProcessor : DisposableObjectBase
{ {
private const int MaxQueuedMessages = 1024; private const int MaxQueuedMessages = 1024;
private readonly IConsole console; private readonly IConsole console;
@ -37,32 +37,40 @@ namespace Squidex.Infrastructure.Log.Internal
public void EnqueueMessage(LogMessageEntry message) public void EnqueueMessage(LogMessageEntry message)
{ {
try if (!messageQueue.IsAddingCompleted)
{ {
if (!IsDisposed) try
{ {
messageQueue.Add(message); messageQueue.Add(message);
return;
}
catch (Exception ex)
{
Debug.WriteLine($"Failed to enqueue log message: {ex}.");
} }
} }
catch (ObjectDisposedException)
{ WriteMessage(message);
Debug.WriteLine("Console queue disposed."); }
}
private static void ProcessLogQueue(object state)
{
var processor = (ConsoleLogProcessor)state;
processor.ProcessLogQueue();
} }
private void ProcessLogQueue() private void ProcessLogQueue()
{ {
foreach (var entry in messageQueue.GetConsumingEnumerable()) foreach (var entry in messageQueue.GetConsumingEnumerable())
{ {
console.WriteLine(entry.Color, entry.Message); WriteMessage(entry);
} }
} }
private static void ProcessLogQueue(object state) private void WriteMessage(LogMessageEntry entry)
{ {
var processor = (ConsoleLogProcessor)state; console.WriteLine(entry.Color, entry.Message);
processor.ProcessLogQueue();
} }
protected override void DisposeObject(bool disposing) protected override void DisposeObject(bool disposing)
@ -70,7 +78,6 @@ namespace Squidex.Infrastructure.Log.Internal
if (disposing) if (disposing)
{ {
messageQueue.CompleteAdding(); messageQueue.CompleteAdding();
messageQueue.Dispose();
try try
{ {
@ -78,10 +85,7 @@ namespace Squidex.Infrastructure.Log.Internal
} }
catch (Exception ex) catch (Exception ex)
{ {
if (!ex.Is<OperationCanceledException>()) Debug.WriteLine($"Failed to shutdown log queue grateful: {ex}.");
{
throw;
}
} }
} }
} }

1
src/Squidex.Infrastructure/Squidex.Infrastructure.csproj

@ -10,6 +10,7 @@
<ItemGroup> <ItemGroup>
<PackageReference Include="Microsoft.Extensions.Caching.Abstractions" Version="2.0.0" /> <PackageReference Include="Microsoft.Extensions.Caching.Abstractions" Version="2.0.0" />
<PackageReference Include="Microsoft.Extensions.Logging" Version="2.0.0" /> <PackageReference Include="Microsoft.Extensions.Logging" Version="2.0.0" />
<PackageReference Include="Microsoft.Extensions.Logging.Console" Version="2.0.0" />
<PackageReference Include="Microsoft.Orleans.Core" Version="2.0.0-beta1" /> <PackageReference Include="Microsoft.Orleans.Core" Version="2.0.0-beta1" />
<PackageReference Include="Microsoft.Orleans.OrleansCodeGenerator.Build" Version="2.0.0-beta1-fix" /> <PackageReference Include="Microsoft.Orleans.OrleansCodeGenerator.Build" Version="2.0.0-beta1-fix" />
<PackageReference Include="Newtonsoft.Json" Version="10.0.3" /> <PackageReference Include="Newtonsoft.Json" Version="10.0.3" />

2
src/Squidex/Config/Orleans/SiloExtensions.cs

@ -35,7 +35,7 @@ namespace Squidex.Config.Orleans
public static ClusterConfiguration WithDashboard(this ClusterConfiguration config) public static ClusterConfiguration WithDashboard(this ClusterConfiguration config)
{ {
config.RegisterDashboard(); // config.RegisterDashboard();
return config; return config;
} }

4
src/Squidex/Config/Orleans/SiloServices.cs

@ -30,8 +30,8 @@ namespace Squidex.Config.Orleans
if (clusterConfiguration != null) if (clusterConfiguration != null)
{ {
clusterConfiguration.Globals.RegisterBootstrapProvider<EventConsumerBootstrap>("EventConsumers"); // clusterConfiguration.Globals.RegisterBootstrapProvider<EventConsumerBootstrap>("EventConsumers");
clusterConfiguration.Globals.RegisterBootstrapProvider<RuleDequeuerBootstrap>("RuleDequeuer"); // clusterConfiguration.Globals.RegisterBootstrapProvider<RuleDequeuerBootstrap>("RuleDequeuer");
var ipConfig = config.GetRequiredValue("orleans:hostNameOrIPAddress"); var ipConfig = config.GetRequiredValue("orleans:hostNameOrIPAddress");

2
src/Squidex/Program.cs

@ -28,7 +28,7 @@ namespace Squidex
.AddApplicationPartsFromReferences(typeof(AppStateGrain).Assembly) .AddApplicationPartsFromReferences(typeof(AppStateGrain).Assembly)
.AddApplicationPartsFromReferences(typeof(EventConsumerGrain).Assembly) .AddApplicationPartsFromReferences(typeof(EventConsumerGrain).Assembly)
.AddApplicationPartsFromReferences(typeof(XmlRepositoryGrain).Assembly) .AddApplicationPartsFromReferences(typeof(XmlRepositoryGrain).Assembly)
.UseDashboard(options => { options.HostSelf = false; }) // .UseDashboard(options => { options.HostSelf = false; })
.UseContentRoot(Directory.GetCurrentDirectory()) .UseContentRoot(Directory.GetCurrentDirectory())
.UseConfiguration( .UseConfiguration(
ClusterConfiguration.LocalhostPrimarySilo(33333) ClusterConfiguration.LocalhostPrimarySilo(33333)

Loading…
Cancel
Save