Skip to content

Commit d3961b9

Browse files
committed
Add timeout to queued command
1 parent b21e1a9 commit d3961b9

File tree

3 files changed

+13
-3
lines changed

3 files changed

+13
-3
lines changed

src/InEngine.Core/Queuing/Clients/FileClient.cs

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -3,6 +3,7 @@
33
using System.IO;
44
using System.Linq;
55
using InEngine.Core.Exceptions;
6+
using Quartz;
67

78
namespace InEngine.Core.Queuing.Clients
89
{
@@ -81,7 +82,7 @@ public bool Consume()
8182
var message = File.ReadAllText(inProgressFilePath).DeserializeFromJson<Message>();
8283
try
8384
{
84-
Queue.ExtractCommandInstanceFromMessage(message as IMessage).Run();
85+
Queue.ExtractCommandInstanceFromMessageAndRun(message as IMessage);
8586
}
8687
catch (Exception exception)
8788
{

src/InEngine.Core/Queuing/Clients/RedisClient.cs

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -50,11 +50,10 @@ public bool Consume()
5050
var message = serializedMessage.DeserializeFromJson<Message>();
5151
if (message == null)
5252
return false;
53-
var commandInstance = Queue.ExtractCommandInstanceFromMessage(message);
5453

5554
try
5655
{
57-
commandInstance.Run();
56+
Queue.ExtractCommandInstanceFromMessageAndRun(message as IMessage);
5857
}
5958
catch (Exception exception)
6059
{

src/InEngine.Core/Queuing/Queue.cs

Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -5,6 +5,7 @@
55
using InEngine.Core.Exceptions;
66
using InEngine.Core.Queuing.Clients;
77
using Newtonsoft.Json;
8+
using Quartz;
89
using Serialize.Linq.Extensions;
910

1011
namespace InEngine.Core.Queuing
@@ -80,6 +81,15 @@ public static ICommand ExtractCommandInstanceFromMessage(IMessage message)
8081
) as ICommand;
8182
}
8283

84+
public static void ExtractCommandInstanceFromMessageAndRun(IMessage message)
85+
{
86+
var command = ExtractCommandInstanceFromMessage(message);
87+
if (command is IJob)
88+
(command as IJob).Execute(null);
89+
else
90+
command.Run();
91+
}
92+
8393
public long GetPendingQueueLength()
8494
{
8595
return QueueClient.GetPendingQueueLength();

0 commit comments

Comments
 (0)