Skip to content

Commit 9db6323

Browse files
committed
Use SchedulerListener to delete a SimpleTrigger from ES after it finishes
1 parent ad5c175 commit 9db6323

File tree

7 files changed

+126
-34
lines changed

7 files changed

+126
-34
lines changed

IntegrationEngine.ConsoleHost/IntegrationJobs/SampleSqlReport/SampleSqlReportJob.cs

Lines changed: 0 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -17,8 +17,6 @@ public override void Run()
1717
//Data = RunQuery<SampleDatum>(),
1818
};
1919

20-
// Write result to Elasticsearch
21-
2220
// Pass into Razor engine
2321
string template = "Created on <strong>@Model.Created</strong> with <strong>@Model.Data.Count</strong> records.";
2422
var html = Engine.Razor.RunCompile(template, "template-01", typeof(SampleReport), report);

IntegrationEngine/EngineHostConfiguration.cs

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -132,6 +132,11 @@ public void SetupEngineScheduler(ILog log, IMessageQueueClient messageQueueClien
132132
Log = log,
133133
};
134134
Container.RegisterInstance<IEngineScheduler>(engineScheduler);
135+
var engineSchedulerListener = new EngineSchedulerListener() {
136+
ElasticsearchRepository = elasticsearchRepository,
137+
Log = log,
138+
};
139+
engineScheduler.AddSchedulerListener(engineSchedulerListener);
135140
engineScheduler.Start();
136141
var simpleTriggers = elasticsearchRepository.SelectAll<SimpleTrigger>();
137142
var allCronTriggers = elasticsearchRepository.SelectAll<CronTrigger>();

IntegrationEngine/IntegrationEngine.csproj

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -156,8 +156,9 @@
156156
<Compile Include="MessageQueue\MsmqClient.cs" />
157157
<Compile Include="MessageQueue\MsmqListener.cs" />
158158
<Compile Include="Scheduler\CronTrigger.cs" />
159+
<Compile Include="Scheduler\IEngineSchedulerListener.cs" />
160+
<Compile Include="Scheduler\EngineSchedulerListener.cs" />
159161
<Compile Include="Scheduler\SimpleTrigger.cs" />
160-
<Compile Include="Scheduler\TriggerListener.cs" />
161162
<Compile Include="Properties\AssemblyInfo.cs" />
162163
<Compile Include="MessageQueue\IMessageQueueClient.cs" />
163164
<Compile Include="MessageQueue\RabbitMQClient.cs" />

IntegrationEngine/Scheduler/EngineScheduler.cs

Lines changed: 5 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -23,12 +23,14 @@ public EngineScheduler()
2323

2424
public void Start()
2525
{
26-
var triggerListener = new TriggerListener();
27-
var mgr = Scheduler.ListenerManager;
28-
mgr.AddTriggerListener(triggerListener, GroupMatcher<TriggerKey>.AnyGroup());
2926
Scheduler.Start();
3027
}
3128

29+
public void AddSchedulerListener(EngineSchedulerListener engineSchedulerListener)
30+
{
31+
Scheduler.ListenerManager.AddSchedulerListener(engineSchedulerListener);
32+
}
33+
3234
public virtual void Shutdown()
3335
{
3436
Scheduler.Shutdown();
Lines changed: 102 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,102 @@
1+
using Common.Logging;
2+
using IntegrationEngine.Core.Storage;
3+
using Quartz;
4+
using System;
5+
6+
namespace IntegrationEngine.Scheduler
7+
{
8+
public class EngineSchedulerListener : IEngineSchedulerListener
9+
{
10+
public IElasticsearchRepository ElasticsearchRepository { get; set; }
11+
public ILog Log { get; set; }
12+
13+
public void JobAdded(IJobDetail jobDetail)
14+
{
15+
}
16+
17+
public void JobDeleted(JobKey jobKey)
18+
{
19+
}
20+
21+
public void JobPaused(JobKey jobKey)
22+
{
23+
}
24+
25+
public void JobResumed(JobKey jobKey)
26+
{
27+
}
28+
29+
public void JobScheduled(ITrigger trigger)
30+
{
31+
}
32+
33+
public void JobUnscheduled(TriggerKey triggerKey)
34+
{
35+
}
36+
37+
public void JobsPaused(string jobGroup)
38+
{
39+
}
40+
41+
public void JobsResumed(string jobGroup)
42+
{
43+
}
44+
45+
public void SchedulerError(string msg, SchedulerException cause)
46+
{
47+
}
48+
49+
public void SchedulerInStandbyMode()
50+
{
51+
}
52+
53+
public void SchedulerShutdown()
54+
{
55+
}
56+
57+
public void SchedulerShuttingdown()
58+
{
59+
}
60+
61+
public void SchedulerStarted()
62+
{
63+
}
64+
65+
public void SchedulerStarting()
66+
{
67+
}
68+
69+
public void SchedulingDataCleared()
70+
{
71+
}
72+
73+
public void TriggerFinalized(ITrigger trigger)
74+
{
75+
try
76+
{
77+
if (trigger is ISimpleTrigger)
78+
ElasticsearchRepository.Delete<SimpleTrigger>(trigger.Key.Name);
79+
}
80+
catch (Exception exception)
81+
{
82+
Log.Error("Error deleting simple trigger.", exception);
83+
}
84+
}
85+
86+
public void TriggerPaused(TriggerKey triggerKey)
87+
{
88+
}
89+
90+
public void TriggerResumed(TriggerKey triggerKey)
91+
{
92+
}
93+
94+
public void TriggersPaused(string triggerGroup)
95+
{
96+
}
97+
98+
public void TriggersResumed(string triggerGroup)
99+
{
100+
}
101+
}
102+
}
Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,12 @@
1+
using Common.Logging;
2+
using IntegrationEngine.Core.Storage;
3+
using Quartz;
4+
5+
namespace IntegrationEngine.Scheduler
6+
{
7+
public interface IEngineSchedulerListener : ISchedulerListener
8+
{
9+
IElasticsearchRepository ElasticsearchRepository { get; set; }
10+
ILog Log { get; set; }
11+
}
12+
}

IntegrationEngine/Scheduler/TriggerListener.cs

Lines changed: 0 additions & 28 deletions
This file was deleted.

0 commit comments

Comments
 (0)