Skip to content

Commit

Permalink
Merge release/3.0.1 to master
Browse files Browse the repository at this point in the history
  • Loading branch information
eXpl0it3r authored Aug 21, 2023
2 parents 4bd890d + 8fe9069 commit 3c76b57
Show file tree
Hide file tree
Showing 4 changed files with 35 additions and 27 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -28,9 +28,9 @@
</PropertyGroup>
<Import Project="$(VSToolsPath)\TeamTest\Microsoft.TestTools.targets" Condition="Exists('$(VSToolsPath)\TeamTest\Microsoft.TestTools.targets')" />
<ItemGroup>
<PackageReference Include="Microsoft.NET.Test.Sdk" Version="17.4.1" />
<PackageReference Include="MSTest.TestAdapter" Version="2.2.10" />
<PackageReference Include="MSTest.TestFramework" Version="2.2.10" />
<PackageReference Include="Microsoft.NET.Test.Sdk" Version="17.5.0" />
<PackageReference Include="MSTest.TestAdapter" Version="3.0.2" />
<PackageReference Include="MSTest.TestFramework" Version="3.0.2" />
<PackageReference Include="System.Configuration.ConfigurationManager" Version="6.0.1" />
</ItemGroup>
<ItemGroup>
Expand Down
8 changes: 4 additions & 4 deletions source/Jobbr.Server.UnitTests/Jobbr.Server.UnitTests.csproj
Original file line number Diff line number Diff line change
Expand Up @@ -22,11 +22,11 @@
</PropertyGroup>

<ItemGroup>
<PackageReference Include="Microsoft.NET.Test.Sdk" Version="17.4.1" />
<PackageReference Include="MSTest.TestAdapter" Version="2.2.10" />
<PackageReference Include="MSTest.TestFramework" Version="2.2.10" />
<PackageReference Include="Microsoft.NET.Test.Sdk" Version="17.5.0" />
<PackageReference Include="MSTest.TestAdapter" Version="3.0.2" />
<PackageReference Include="MSTest.TestFramework" Version="3.0.2" />
<PackageReference Include="Moq" Version="4.18.4" />
<PackageReference Include="Shouldly" Version="4.1.0" />
<PackageReference Include="Shouldly" Version="4.2.1" />
</ItemGroup>

<ItemGroup>
Expand Down
46 changes: 27 additions & 19 deletions source/Jobbr.Server/Scheduling/DefaultScheduler.cs
Original file line number Diff line number Diff line change
Expand Up @@ -247,34 +247,42 @@ private void EvaluateRecurringTriggers()
{
lock (_evaluateTriggersLock)
{
// Re-evaluate recurring triggers every n seconds
var activeTriggers = _jobbrRepository.GetActiveTriggers(pageSize: int.MaxValue).Items.Where(t => t.GetType() == typeof(RecurringTrigger));

var additionalItems = new List<ScheduledPlanItem>();

foreach (var trigger in activeTriggers.Cast<RecurringTrigger>())
try
{
var planResult = GetPlanResult(trigger, false);
// Re-evaluate recurring triggers every n seconds
var activeTriggers = _jobbrRepository.GetActiveTriggers(pageSize: int.MaxValue).Items.Where(t => t.GetType() == typeof(RecurringTrigger));

if (planResult.Action == PlanAction.Possible)
var additionalItems = new List<ScheduledPlanItem>();

foreach (var trigger in activeTriggers.Cast<RecurringTrigger>())
{
// Check if there is already a run planned at this time
var nextRunForTrigger = _jobbrRepository.GetNextJobRunByTriggerId(trigger.JobId, trigger.Id, _dateTimeProvider.GetUtcNow());
var planResult = GetPlanResult(trigger, false);

if (nextRunForTrigger == null || !nextRunForTrigger.PlannedStartDateTimeUtc.Equals(planResult.ExpectedStartDateUtc))
if (planResult.Action == PlanAction.Possible)
{
var scheduledItem = CreateNew(planResult, trigger);
additionalItems.Add(scheduledItem);
// Check if there is already a run planned at this time
var nextRunForTrigger = _jobbrRepository.GetNextJobRunByTriggerId(trigger.JobId, trigger.Id, _dateTimeProvider.GetUtcNow());

if (nextRunForTrigger == null || !nextRunForTrigger.PlannedStartDateTimeUtc.Equals(planResult.ExpectedStartDateUtc))
{
var scheduledItem = CreateNew(planResult, trigger);
additionalItems.Add(scheduledItem);
}
}
}
}

if (additionalItems.Any())
{
_logger.LogInformation("The re-evaluation of recurring triggers caused the addition of {itemCount} scheduled items", additionalItems.Count);
_currentPlan.AddRange(additionalItems);
if (additionalItems.Any())
{
_logger.LogInformation("The re-evaluation of recurring triggers caused the addition of {itemCount} scheduled items", additionalItems.Count);
_currentPlan.AddRange(additionalItems);

PublishCurrentPlan();
PublishCurrentPlan();
}
}
catch (Exception e)
{
// Internal error (e.g. DB access failure) in recurring trigger execution should not tear down Jobbr
_logger.LogError(e, "Gathering information or executing of the recurring trigger failed");
}
}
}
Expand Down

0 comments on commit 3c76b57

Please sign in to comment.