master
bicijinlian 4 years ago
parent 6c6e4acf33
commit d6a53faf12

@ -2,12 +2,13 @@
using Topshelf;
using System.Security.Cryptography.X509Certificates;
using System.Threading.Tasks;
namespace TopshelfStudy.NetCoreDemo
{
class Program
{
static void Main(string[] args)
static async Task Main(string[] args)
{
var topshelfExitCode = HostFactory.Run(config =>
{
@ -37,6 +38,8 @@ namespace TopshelfStudy.NetCoreDemo
//退出码
Environment.ExitCode = (int)Convert.ChangeType(topshelfExitCode, topshelfExitCode.GetTypeCode());
await Task.CompletedTask;
}
}
}

@ -20,6 +20,8 @@ namespace TopshelfStudy.NetCoreDemo
{
private IScheduler _scheduler;
public readonly NLog.Logger logger = NLog.LogManager.GetCurrentClassLogger();
public CustomSchedulerListener(IScheduler scheduler)
{
_scheduler = scheduler;
@ -27,7 +29,7 @@ namespace TopshelfStudy.NetCoreDemo
public Task JobAdded(IJobDetail jobDetail, CancellationToken cancellationToken = default(CancellationToken))
{
Console.WriteLine($"{jobDetail.Key} 作业:被添加,成功启用");
logger.Info($"{jobDetail.Key} 作业:被添加,成功启用");
return Task.CompletedTask;
}
@ -39,11 +41,11 @@ namespace TopshelfStudy.NetCoreDemo
{
if (_scheduler.CheckExists(jobKey).Result)
{
Console.WriteLine($"{jobKey} 作业:即将删除");
logger.Info($"{jobKey} 作业:即将删除");
}
else
{
Console.WriteLine($"{jobKey} 作业:完成删除");
logger.Info($"{jobKey} 作业:完成删除");
}
return Task.CompletedTask;
@ -54,7 +56,7 @@ namespace TopshelfStudy.NetCoreDemo
/// </summary>
public Task JobInterrupted(JobKey jobKey, CancellationToken cancellationToken = default(CancellationToken))
{
Console.WriteLine($"{jobKey} 作业:被中断");
logger.Info($"{jobKey} 作业:被中断");
return Task.CompletedTask;
}
@ -64,7 +66,7 @@ namespace TopshelfStudy.NetCoreDemo
/// </summary>
public Task JobPaused(JobKey jobKey, CancellationToken cancellationToken = default(CancellationToken))
{
Console.WriteLine($"{jobKey} 作业:被暂停");
logger.Info($"{jobKey} 作业:被暂停");
return Task.CompletedTask;
}
@ -74,7 +76,7 @@ namespace TopshelfStudy.NetCoreDemo
/// </summary>
public Task JobResumed(JobKey jobKey, CancellationToken cancellationToken = default(CancellationToken))
{
Console.WriteLine($"{jobKey} 作业:被继续");
logger.Info($"{jobKey} 作业:被继续");
return Task.CompletedTask;
}
@ -84,7 +86,7 @@ namespace TopshelfStudy.NetCoreDemo
/// </summary>
public Task JobScheduled(ITrigger trigger, CancellationToken cancellationToken = default(CancellationToken))
{
Console.WriteLine($"{trigger.Key} 触发器:添加到 调度器");
logger.Info($"{trigger.Key} 触发器:添加到 调度器");
return Task.CompletedTask;
}
@ -100,8 +102,8 @@ namespace TopshelfStudy.NetCoreDemo
{
var jobKeys = _scheduler.GetJobKeys(GroupMatcher<JobKey>.GroupEquals(jobGroup)).Result;
foreach (var jobKey in jobKeys)
{
{
}
Console.WriteLine($"{jobGroup} 作业组:被暂停");
@ -111,7 +113,7 @@ namespace TopshelfStudy.NetCoreDemo
public Task JobsResumed(string jobGroup, CancellationToken cancellationToken = default(CancellationToken))
{
var jobKeys = _scheduler.GetJobKeys(GroupMatcher<JobKey>.GroupEquals(jobGroup)).Result;
Console.WriteLine($"{jobGroup} 作业组:被继续");
logger.Info($"{jobGroup} 作业组:被继续");
return Task.CompletedTask;
}
@ -120,13 +122,13 @@ namespace TopshelfStudy.NetCoreDemo
/// </summary>
public Task JobUnscheduled(TriggerKey triggerKey, CancellationToken cancellationToken = default(CancellationToken))
{
Console.WriteLine($"{triggerKey.Name} 触发器:Unscheduled");
logger.Info($"{triggerKey.Name} 触发器:Unscheduled");
return Task.CompletedTask;
}
public Task SchedulerError(string msg, SchedulerException cause, CancellationToken cancellationToken = default(CancellationToken))
{
Console.WriteLine($"Scheduler出现错误:{msg}");
logger.Info($"Scheduler出现错误:{msg}");
return Task.CompletedTask;
}
@ -162,31 +164,31 @@ namespace TopshelfStudy.NetCoreDemo
public Task TriggerFinalized(ITrigger trigger, CancellationToken cancellationToken = default(CancellationToken))
{
Console.WriteLine($"{trigger.Key.Name}:TriggerFinalized");
logger.Info($"{trigger.Key.Name}:TriggerFinalized");
return Task.CompletedTask;
}
public Task TriggerPaused(TriggerKey triggerKey, CancellationToken cancellationToken = default(CancellationToken))
{
Console.WriteLine($"{triggerKey.Name}:TriggerPaused");
logger.Info($"{triggerKey.Name}:TriggerPaused");
return Task.CompletedTask;
}
public Task TriggerResumed(TriggerKey triggerKey, CancellationToken cancellationToken = default(CancellationToken))
{
Console.WriteLine($"{triggerKey.Name}:TriggerResumed");
logger.Info($"{triggerKey.Name}:TriggerResumed");
return Task.CompletedTask;
}
public Task TriggersPaused(string triggerGroup, CancellationToken cancellationToken = default(CancellationToken))
{
Console.WriteLine($"{triggerGroup}:TriggersPaused");
logger.Info($"{triggerGroup}:TriggersPaused");
return Task.CompletedTask;
}
public Task TriggersResumed(string triggerGroup, CancellationToken cancellationToken = default(CancellationToken))
{
Console.WriteLine($"{triggerGroup}:TriggersResumed");
logger.Info($"{triggerGroup}:TriggersResumed");
return Task.CompletedTask;
}
}

@ -16,6 +16,8 @@ namespace TopshelfStudy.NetCoreDemo
/// </summary>
public class CustomTriggerListener : ITriggerListener
{
public readonly NLog.Logger logger = NLog.LogManager.GetCurrentClassLogger();
public string Name { get; } = nameof(CustomTriggerListener);
public CustomTriggerListener()
@ -29,7 +31,7 @@ namespace TopshelfStudy.NetCoreDemo
/// </summary>
public Task TriggerComplete(ITrigger trigger, IJobExecutionContext context, SchedulerInstruction triggerInstructionCode, CancellationToken cancellationToken = default(CancellationToken))
{
Console.WriteLine("触发器执行后");
logger.Info("触发器执行后");
return Task.CompletedTask;
}
@ -40,7 +42,7 @@ namespace TopshelfStudy.NetCoreDemo
/// </summary>
public Task TriggerFired(ITrigger trigger, IJobExecutionContext context, CancellationToken cancellationToken = default(CancellationToken))
{
Console.WriteLine("触发器执行前");
logger.Info("触发器执行前");
return Task.CompletedTask;
}
@ -52,7 +54,7 @@ namespace TopshelfStudy.NetCoreDemo
/// </summary>
public Task TriggerMisfired(ITrigger trigger, CancellationToken cancellationToken = default(CancellationToken))
{
Console.WriteLine("错过触发时间,本次任务丢失.");
logger.Info("错过触发时间,本次任务丢失.");
return Task.CompletedTask;
}
@ -65,7 +67,7 @@ namespace TopshelfStudy.NetCoreDemo
/// </returns>
public Task<bool> VetoJobExecution(ITrigger trigger, IJobExecutionContext context, CancellationToken cancellationToken = default(CancellationToken))
{
Console.WriteLine("触发器审核通过,继续执行.");
logger.Info("触发器审核通过,继续执行.");
return Task.FromResult(false);
}
}

@ -1,6 +1,7 @@
using System;
using System.Collections.Generic;
using System.Linq;
using System.Threading;
using System.Threading.Tasks;
using Quartz;
@ -10,14 +11,14 @@ namespace TopshelfStudy.NetCoreDemo
{
public class JobDemo : IJob
{
NLog.Logger Logger = NLog.LogManager.GetCurrentClassLogger();
public async Task Execute(IJobExecutionContext context)
{
//模拟业务操作
string jobName = "测试作业";
Console.WriteLine($"{jobName} 开始执行");
Console.WriteLine($"{jobName} 执行中...");
await Task.Delay(0*1000);
Console.WriteLine($"{jobName} 执行完毕.");
Logger.Info($"执行作业:测试作业");
await Task.Delay(0);
}
}
}

Loading…
Cancel
Save