Skip to content

Commit e1256be

Browse files
committed
update InMemoryScheduler and ScheduledSend
1 parent 611cf1c commit e1256be

File tree

2 files changed

+12
-3
lines changed

2 files changed

+12
-3
lines changed

src/Wolverine/Runtime/Scheduled/InMemoryScheduledJobProcessor.cs

Lines changed: 10 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
using JasperFx.Core;
1+
using JasperFx.Core;
22
using Wolverine.Runtime.WorkerQueues;
33

44
namespace Wolverine.Runtime.Scheduled;
@@ -74,8 +74,15 @@ public InMemoryScheduledJob(InMemoryScheduledJobProcessor parent, Envelope envel
7474
Envelope = envelope;
7575

7676
_cancellation = new CancellationTokenSource();
77-
var delayTime = ExecutionTime.Subtract(DateTimeOffset.Now);
78-
_task = Task.Delay(delayTime, _cancellation.Token).ContinueWith(_ => publish(), TaskScheduler.Default);
77+
var delayTime = ExecutionTime.Subtract(DateTimeOffset.UtcNow);
78+
if (delayTime <= TimeSpan.Zero)
79+
{
80+
_task = Task.Run(() => publish());
81+
}
82+
else
83+
{
84+
_task = Task.Delay(delayTime, _cancellation.Token).ContinueWith(_ => publish(), TaskScheduler.Default);
85+
}
7986

8087
ReceivedAt = DateTimeOffset.Now;
8188
}

src/Wolverine/Runtime/Scheduled/ScheduledSendEnvelopeHandler.cs

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -18,6 +18,8 @@ public override Task HandleAsync(MessageContext context, CancellationToken cance
1818

1919
var scheduled = (Envelope)context.Envelope!.Message!;
2020
scheduled.Source = context.Runtime.Options.ServiceName;
21+
scheduled.ScheduledTime = null;
22+
scheduled.Status = EnvelopeStatus.Outgoing;
2123

2224
return context.ForwardScheduledEnvelopeAsync(scheduled).AsTask();
2325
}

0 commit comments

Comments
 (0)