一, 新增一个服务项目
二、
static class Program { /// <summary> /// 应用程序的主入口点。 /// </summary> static void Main() { ServiceBase[] ServicesToRun; ServicesToRun = new ServiceBase[] { new Service1(),BackendSingleService() 此处以逗号分隔多个服务‘,’ }; ServiceBase.Run(ServicesToRun); } } public partial class Service1 : ServiceBase { public Service1() { InitializeComponent(); } protected override void OnStart(string[] args) { // TODO: 在此处添加代码以启动服务。 } protected override void OnStop() { // TODO: 在此处添加代码以执行停止服务所需的关闭操作。 } }
partial class BackendSingleService : ServiceBase
{
static int TASK_INTERVAL_Hour = 60 * 1000; // 每分钟检查一次
private Object monitorSubAccountUpdateRecord = new Object(); // 确保定时器事件不会重复进入
private System.Timers.Timer updateSubAccountUpdateRecordTimer = null; //在应用程序中生成定期事件
private static readonly ILog log = LogManager.GetLogger(typeof(Program)); //日志
public BackendSingleService()
{
InitializeComponent();
}
protected override void OnStart(string[] args)
{
// TODO: 在此处添加代码以启动服务。
log.Info(" Management服务启动。");
InitializeTaskTimer();
StartTaskTimer();
}
protected override void OnStop()
{
// TODO: 在此处添加代码以执行停止服务所需的关闭操作。
StopTaskTimer();
log.Info(" Management服务停止。");
}
/// <summary>
/// [SubAccount]子账号更新记录情况
/// </summary>
/// <param name="sender"></param>
/// <param name="e"></param>
private void UpdateSubAccountUpdateRecordTimer_Tick(object sender, ElapsedEventArgs e)
{
if (!Monitor.TryEnter(monitorSubAccountUpdateRecord))
{
log.Info("定时器在cancelReminderNearDueZoomAccountTimer_Tick返回。");
return;
}
try
{
//子账号更新情况
DoSubAccountUpdateRecord();
}
catch (Exception ex)
{
log.Fatal("DoReminderNearDueZoomAccount运行异常,信息:", ex);
}
finally
{
Monitor.Exit(monitorSubAccountUpdateRecord);
}
}
#region 内部辅助方法
private void InitializeTaskTimer()
{
log.Info("初始化任务定时器。");
updateSubAccountUpdateRecordTimer = new System.Timers.Timer(TASK_INTERVAL_Hour); //一小时更新一次
updateSubAccountUpdateRecordTimer.Elapsed += new ElapsedEventHandler(UpdateSubAccountUpdateRecordTimer_Tick);
}
private void StartTaskTimer()
{
log.Info("启动任务定时器。");
UpdateTaskTimerStatus(true);
}
private void StopTaskTimer()
{
log.Info("停止任务定时器。");
UpdateTaskTimerStatus(false);
}
private void UpdateTaskTimerStatus(bool enabled)
{
updateSubAccountUpdateRecordTimer.Enabled = enabled;
}
/// <summary>
/// [SubAccount]子账号更新记录情况
/// </summary>
public void DoSubAccountUpdateRecord()
{
}
#endregion
}
浙公网安备 33010602011771号