Commit 2231c82f authored by 黄奎's avatar 黄奎

定时服务调整

parent 93a5f40a
using Mall.Common.Plugin; using System;
using System;
using System.Collections.Generic;
using System.Text;
using System.Threading; using System.Threading;
namespace Mall.WindowsService.Helper namespace Mall.WindowsService.Helper
{ {
public class TimersHelper public class TimersHelper
{ {
private static int inTimer = 0;
private static int inTimer1 = 0;
private static int inTimer2 = 0;
private static int inTimer3 = 0;
private static int inTimer4 = 0;
private static int inTimer5 = 0;
private static int inTimer6 = 0; private static int inTimer6 = 0;
private static int inTimer7 = 0; private static int inTimer7 = 0;
private static int inTimer8 = 0; private static int inTimer8 = 0;
...@@ -27,63 +18,62 @@ namespace Mall.WindowsService.Helper ...@@ -27,63 +18,62 @@ namespace Mall.WindowsService.Helper
/// <param name="e"></param> /// <param name="e"></param>
public void RevenueFinance(object sender, System.Timers.ElapsedEventArgs e) public void RevenueFinance(object sender, System.Timers.ElapsedEventArgs e)
{ {
if (Interlocked.Exchange(ref inTimer, 1) == 0) DateTime now = DateTime.Now;
if (now.Minute == 10)
{ {
Thread.Sleep(1000 * 60);
LogHelper.Write("RevenueFinance=====Start"); LogHelper.Write("RevenueFinance=====Start");
bool flag= Module.FinanceModule.OrderIncomeFinanceModule();
LogHelper.Write("RevenueFinance=====End " + flag);
Module.FinanceModule.OrderIncomeFinanceModule();
LogHelper.Write("RevenueFinance=====End");
#region 退款制单 #region 退款制单
LogHelper.Write("AutoCreateFinanceRefund=====Start"); LogHelper.Write("AutoCreateFinanceRefund=====Start");
Module.FinanceModule.AutoCreateFinanceRefund(); flag= Module.FinanceModule.AutoCreateFinanceRefund();
LogHelper.Write("AutoCreateFinanceRefund=====End"); LogHelper.Write("AutoCreateFinanceRefund=====End "+flag);
#endregion #endregion
#region 分享商VIP过期时间 #region 分享商VIP过期时间
LogHelper.Write("DistributorVipModule=====Start"); LogHelper.Write("DistributorVipModule=====Start");
Module.FinanceModule.DistributorVipModule(); flag= Module.FinanceModule.DistributorVipModule();
LogHelper.Write("DistributorVipModule=====End"); LogHelper.Write("DistributorVipModule=====End "+flag);
#endregion #endregion
#region 电商统计 #region 电商统计
if (DateTime.Now.Hour == 1) if (now.Hour == 1)
{ {
LogHelper.Write("UpdateToDayUserStatistics=====Start"); LogHelper.Write("UpdateToDayUserStatistics=====Start");
try try
{ {
new Module.UserStatisticsModule().UpdateToDayUserStatistics("", ""); flag= new Module.UserStatisticsModule().UpdateToDayUserStatistics("", "");
} }
catch (Exception ex) catch (Exception ex)
{ {
flag = false;
LogHelper.Write("UpdateToDayUserStatistics:" + ex.Message); LogHelper.Write("UpdateToDayUserStatistics:" + ex.Message);
} }
LogHelper.Write("UpdateToDayUserStatistics=====End"); LogHelper.Write("UpdateToDayUserStatistics=====End " + flag);
} }
#endregion #endregion
Interlocked.Exchange(ref inTimer, 0);
} }
} }
/// <summary> /// <summary>
/// 自动取消订单 /// 自动取消订单【10分钟执行一次】
/// </summary> /// </summary>
/// <param name="sender"></param> /// <param name="sender"></param>
/// <param name="e"></param> /// <param name="e"></param>
public void AutoCancelOrder(object sender, System.Timers.ElapsedEventArgs e) public void AutoCancelOrder(object sender, System.Timers.ElapsedEventArgs e)
{ {
if (Interlocked.Exchange(ref inTimer1, 1) == 0) DateTime now = DateTime.Now;
if (now.Minute % 10 == 0)
{ {
Thread.Sleep(1000 * 60);
LogHelper.Write("AutoCancelOrder=====Start"); LogHelper.Write("AutoCancelOrder=====Start");
Module.FinanceModule.AutoCancelOrder(); bool flag= Module.FinanceModule.AutoCancelOrder();
LogHelper.Write("AutoCancelOrder=====End"); LogHelper.Write("AutoCancelOrder=====End " + flag);
Interlocked.Exchange(ref inTimer1, 0);
} }
} }
/// <summary> /// <summary>
/// 自动收货订单 /// 自动收货订单
/// </summary> /// </summary>
...@@ -91,39 +81,37 @@ namespace Mall.WindowsService.Helper ...@@ -91,39 +81,37 @@ namespace Mall.WindowsService.Helper
/// <param name="e"></param> /// <param name="e"></param>
public void AutoReceivingOrder(object sender, System.Timers.ElapsedEventArgs e) public void AutoReceivingOrder(object sender, System.Timers.ElapsedEventArgs e)
{ {
if (Interlocked.Exchange(ref inTimer2, 1) == 0) DateTime now = DateTime.Now;
if (now.Minute == 20)
{ {
if (DateTime.Now.Hour == 1) if (now.Hour == 1)
{ {
LogHelper.Write("AutoReceivingOrder=====Start"); LogHelper.Write("AutoReceivingOrder=====Start");
Module.FinanceModule.AutoReceivingOrder(); bool flag = Module.FinanceModule.AutoReceivingOrder();
LogHelper.Write("AutoReceivingOrder=====End"); LogHelper.Write("AutoReceivingOrder=====End " + flag);
} }
Thread.Sleep(1000 * 60);
LogHelper.Write("AutoAfterSaleOrderSendCommission=====Start"); LogHelper.Write("AutoAfterSaleOrderSendCommission=====Start");
Module.FinanceModule.AutoAfterSaleOrderSendCommission(); bool flag2 = Module.FinanceModule.AutoAfterSaleOrderSendCommission();
LogHelper.Write("AutoAfterSaleOrderSendCommission=====End"); LogHelper.Write("AutoAfterSaleOrderSendCommission=====End " + flag2);
Interlocked.Exchange(ref inTimer2, 0);
} }
} }
/// <summary> /// <summary>
/// 七天自动取消下线 /// 七天自动取消下线【每天2:00执行一次】
/// </summary> /// </summary>
/// <param name="sender"></param> /// <param name="sender"></param>
/// <param name="e"></param> /// <param name="e"></param>
public void AutoReleaseTheOffline(object sender, System.Timers.ElapsedEventArgs e) public void AutoReleaseTheOffline(object sender, System.Timers.ElapsedEventArgs e)
{ {
if (Interlocked.Exchange(ref inTimer3, 1) == 0) DateTime now = DateTime.Now;
{ if (now.Hour == 2 && now.Minute == 0)
if (DateTime.Now.Hour == 1)
{ {
Thread.Sleep(1000 * 60);
LogHelper.Write("AutoReleaseTheOffline=====Start"); LogHelper.Write("AutoReleaseTheOffline=====Start");
Module.FinanceModule.AutoReleaseTheOffline(); Module.FinanceModule.AutoReleaseTheOffline();
LogHelper.Write("AutoReleaseTheOffline=====End"); LogHelper.Write("AutoReleaseTheOffline=====End");
} }
Interlocked.Exchange(ref inTimer3, 0);
}
} }
/// <summary> /// <summary>
...@@ -133,8 +121,10 @@ namespace Mall.WindowsService.Helper ...@@ -133,8 +121,10 @@ namespace Mall.WindowsService.Helper
/// <param name="e"></param> /// <param name="e"></param>
public void GoodsShelves(object sender, System.Timers.ElapsedEventArgs e) public void GoodsShelves(object sender, System.Timers.ElapsedEventArgs e)
{ {
if (Interlocked.Exchange(ref inTimer4, 1) == 0) DateTime now = DateTime.Now;
if ((now.Minute + 5) % 10 == 0)
{ {
Thread.Sleep(1000 * 60);
try try
{ {
string str = Common.Config.GetConnectionString("DefaultConnection"); string str = Common.Config.GetConnectionString("DefaultConnection");
...@@ -147,34 +137,32 @@ namespace Mall.WindowsService.Helper ...@@ -147,34 +137,32 @@ namespace Mall.WindowsService.Helper
{ {
LogHelper.Write("GoodsShelves=====ex" + ex.Message); LogHelper.Write("GoodsShelves=====ex" + ex.Message);
} }
Interlocked.Exchange(ref inTimer4, 0);
} }
} }
/// <summary> /// <summary>
/// 资讯定时上架,下架 /// 资讯定时上架,下架【每30分钟执行一次】
/// </summary> /// </summary>
/// <param name="sender"></param> /// <param name="sender"></param>
/// <param name="e"></param> /// <param name="e"></param>
public void EducationArticleShelves(object sender, System.Timers.ElapsedEventArgs e) public void EducationArticleShelves(object sender, System.Timers.ElapsedEventArgs e)
{ {
if (Interlocked.Exchange(ref inTimer5, 1) == 0) DateTime now = DateTime.Now;
if ((now.Minute + 6) % 30 == 0)
{ {
try try
{ {
string str = Common.Config.GetConnectionString("DefaultConnection"); LogHelper.Write("EducationArticleShelves=====Start");
LogHelper.Write("EducationArticleShelves=====Start" + str); bool flag1 = Module.EducationArticleShelvesModule.ShelvesEducationArticleModule();
Module.EducationArticleShelvesModule.ShelvesEducationArticleModule(); bool flag2 = Module.EducationArticleShelvesModule.DownEducationArticleModule();
Module.EducationArticleShelvesModule.DownEducationArticleModule(); LogHelper.Write("EducationArticleShelves=====End flag1:" + flag1 + " flag2:" + flag2);
LogHelper.Write("EducationArticleShelves=====End");
} }
catch (Exception ex) catch (Exception ex)
{ {
LogHelper.Write("EducationArticleShelves=====ex" + ex.Message); LogHelper.Write("EducationArticleShelves=====ex" + ex.Message);
} }
Interlocked.Exchange(ref inTimer5, 0);
} }
} }
......
<Project Sdk="Microsoft.NET.Sdk"> <Project Sdk="Microsoft.NET.Sdk">
<PropertyGroup> <PropertyGroup>
<OutputType>Exe</OutputType> <OutputType>WinExe</OutputType>
<TargetFramework>netcoreapp3.1</TargetFramework> <TargetFramework>netcoreapp3.1</TargetFramework>
<StartupObject>Mall.WindowsService.Program</StartupObject> <StartupObject>Mall.WindowsService.Program</StartupObject>
</PropertyGroup> </PropertyGroup>
......
using Mall.Common.Plugin; using Mall.WindowsService.Helper;
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Diagnostics;
using System.ServiceProcess; using System.ServiceProcess;
using System.Text;
using Mall.WindowsService.Helper;
namespace Mall.WindowsService namespace Mall.WindowsService
{ {
partial class WindowsService : ServiceBase partial class WindowsService : ServiceBase
...@@ -16,11 +9,11 @@ namespace Mall.WindowsService ...@@ -16,11 +9,11 @@ namespace Mall.WindowsService
private System.Timers.Timer timer3; //订单自动收货计时器 private System.Timers.Timer timer3; //订单自动收货计时器
private System.Timers.Timer timer4; //七天自动取消下线计时器 private System.Timers.Timer timer4; //七天自动取消下线计时器
private System.Timers.Timer timer5; //定时上架和下架 private System.Timers.Timer timer5; //定时上架和下架
private System.Timers.Timer timer6; //资讯定时上架和下架 //private System.Timers.Timer timer6; //资讯定时上架和下架
private System.Timers.Timer timer7; //会员储值卡赠送状态更新 //private System.Timers.Timer timer7; //会员储值卡赠送状态更新
private System.Timers.Timer timer8;//会员购买储值卡收入 //private System.Timers.Timer timer8;//会员购买储值卡收入
private System.Timers.Timer timer9;//相亲每日随机查询信息删除 //private System.Timers.Timer timer9;//相亲每日随机查询信息删除
private System.Timers.Timer timer10; //教育咖啡劵 //private System.Timers.Timer timer10; //教育咖啡劵
public WindowsService() public WindowsService()
{ {
InitializeComponent(); InitializeComponent();
...@@ -30,9 +23,11 @@ namespace Mall.WindowsService ...@@ -30,9 +23,11 @@ namespace Mall.WindowsService
{ {
// TODO: 在此处添加代码以启动服务。 // TODO: 在此处添加代码以启动服务。
Helper.LogHelper.Write("主服务开始运行......"); Helper.LogHelper.Write("主服务开始运行......");
TimersHelper helper = new TimersHelper(); TimersHelper helper = new TimersHelper();
timer1 = new System.Timers.Timer(); timer1 = new System.Timers.Timer();
timer1.Interval = 1000 * (60 * 30); //60分钟 timer1.Interval = 1000 * 60; //1分钟检测一次(60分钟执行一次)
timer1.Elapsed += new System.Timers.ElapsedEventHandler(helper.RevenueFinance); timer1.Elapsed += new System.Timers.ElapsedEventHandler(helper.RevenueFinance);
timer1.Enabled = true; timer1.Enabled = true;
...@@ -40,7 +35,7 @@ namespace Mall.WindowsService ...@@ -40,7 +35,7 @@ namespace Mall.WindowsService
timer2 = new System.Timers.Timer timer2 = new System.Timers.Timer
{ {
Interval = 1000 * (60 * 10) //10分钟处理一次 Interval = 1000 * 60 //1分钟检测一次,10分钟执行一次
}; };
timer2.Elapsed += new System.Timers.ElapsedEventHandler(helper.AutoCancelOrder); timer2.Elapsed += new System.Timers.ElapsedEventHandler(helper.AutoCancelOrder);
timer2.Enabled = true; timer2.Enabled = true;
...@@ -48,11 +43,9 @@ namespace Mall.WindowsService ...@@ -48,11 +43,9 @@ namespace Mall.WindowsService
#endregion #endregion
#region 订单自动完成定时器 #region 订单自动完成定时器
timer3 = new System.Timers.Timer();
timer3 = new System.Timers.Timer timer3 = new System.Timers.Timer
{ {
Interval = 1000 * (60 * 60) //60分钟调用一次 Interval = 1000 * 60 //1分钟检测一次,60分钟执行一次
}; };
timer3.Elapsed += new System.Timers.ElapsedEventHandler(helper.AutoReceivingOrder); timer3.Elapsed += new System.Timers.ElapsedEventHandler(helper.AutoReceivingOrder);
timer3.Enabled = true; timer3.Enabled = true;
...@@ -60,11 +53,9 @@ namespace Mall.WindowsService ...@@ -60,11 +53,9 @@ namespace Mall.WindowsService
#endregion #endregion
#region 七天自动取消下线 #region 七天自动取消下线
timer4 = new System.Timers.Timer();
timer4 = new System.Timers.Timer timer4 = new System.Timers.Timer
{ {
Interval = 1000 * (60 * 60) //60分钟调用一次 Interval = 1000 * 60 //1分钟检测一次,每天2:00执行一次
}; };
timer4.Elapsed += new System.Timers.ElapsedEventHandler(helper.AutoReleaseTheOffline); timer4.Elapsed += new System.Timers.ElapsedEventHandler(helper.AutoReleaseTheOffline);
timer4.Enabled = true; timer4.Enabled = true;
...@@ -72,10 +63,9 @@ namespace Mall.WindowsService ...@@ -72,10 +63,9 @@ namespace Mall.WindowsService
#endregion #endregion
#region 商品定时上下架 #region 商品定时上下架
timer5 = new System.Timers.Timer();
timer5 = new System.Timers.Timer timer5 = new System.Timers.Timer
{ {
Interval = 1000 * (60 * 2) //10分钟调用一次 Interval = 1000 * 60 //1分钟检测一次, 10分钟执行一次
}; };
timer5.Elapsed += new System.Timers.ElapsedEventHandler(helper.GoodsShelves); timer5.Elapsed += new System.Timers.ElapsedEventHandler(helper.GoodsShelves);
timer5.Enabled = true; timer5.Enabled = true;
...@@ -83,57 +73,52 @@ namespace Mall.WindowsService ...@@ -83,57 +73,52 @@ namespace Mall.WindowsService
#region 资讯上下架 #region 资讯上下架
timer6 = new System.Timers.Timer(); //timer6 = new System.Timers.Timer
timer6 = new System.Timers.Timer //{
{ // Interval = 1000 * 60 //1秒检测一次,30分钟执行一次
Interval = 1000 * (60 * 2) //10分钟调用一次 //};
}; //timer6.Elapsed += new System.Timers.ElapsedEventHandler(helper.EducationArticleShelves);
timer6.Elapsed += new System.Timers.ElapsedEventHandler(helper.EducationArticleShelves); //timer6.Enabled = true;
timer6.Enabled = true;
#endregion #endregion
#region 会员储值卡赠送状态更新 #region 会员储值卡赠送状态更新
timer7 = new System.Timers.Timer(); //timer7 = new System.Timers.Timer
timer7 = new System.Timers.Timer //{
{ // Interval = 1000 * (60 * 10) //10分钟调用一次
Interval = 1000 * (60 * 10) //10分钟调用一次 //};
}; //timer7.Elapsed += new System.Timers.ElapsedEventHandler(helper.MemberDepositBuyShelves);
timer7.Elapsed += new System.Timers.ElapsedEventHandler(helper.MemberDepositBuyShelves); //timer7.Enabled = true;
timer7.Enabled = true;
#endregion #endregion
#region 储值卡收入 #region 储值卡收入
timer8 = new System.Timers.Timer(); //timer8 = new System.Timers.Timer
timer8 = new System.Timers.Timer //{
{ // Interval = 1000 * (60 * 30) //10分钟调用一次
Interval = 1000 * (60 * 30) //10分钟调用一次 //};
}; //timer8.Elapsed += new System.Timers.ElapsedEventHandler(helper.DepositIncomeFinanceShelves);
timer8.Elapsed += new System.Timers.ElapsedEventHandler(helper.DepositIncomeFinanceShelves); //timer8.Enabled = true;
timer8.Enabled = true;
#endregion #endregion
#region 相亲每日随机查询信息删除 #region 相亲每日随机查询信息删除
timer9 = new System.Timers.Timer(); //timer9 = new System.Timers.Timer
timer9 = new System.Timers.Timer //{
{ // Interval = 1000 * (60 * 240) //4小时调用一次
Interval = 1000 * (60 * 240) //4小时调用一次 //};
}; //timer9.Elapsed += new System.Timers.ElapsedEventHandler(helper.DailyRandomShelves);
timer9.Elapsed += new System.Timers.ElapsedEventHandler(helper.DailyRandomShelves); //timer9.Enabled = true;
timer9.Enabled = true;
#endregion #endregion
#region 咖啡劵定时器 #region 咖啡劵定时器
timer10 = new System.Timers.Timer(); //timer10 = new System.Timers.Timer
timer10 = new System.Timers.Timer //{
{ // Interval = 1000 * (60 * 2) //2 分钟调用一次
Interval = 1000 * (60 * 2) //2 分钟调用一次 //};
}; //timer10.Elapsed += new System.Timers.ElapsedEventHandler(helper.EduInitFreeCoffee);
timer10.Elapsed += new System.Timers.ElapsedEventHandler(helper.EduInitFreeCoffee); //timer10.Enabled = true;
timer10.Enabled = true;
#endregion #endregion
} }
...@@ -147,11 +132,11 @@ namespace Mall.WindowsService ...@@ -147,11 +132,11 @@ namespace Mall.WindowsService
this.timer3.Enabled = false; this.timer3.Enabled = false;
this.timer4.Enabled = false; this.timer4.Enabled = false;
this.timer5.Enabled = false; this.timer5.Enabled = false;
this.timer6.Enabled = false; //this.timer6.Enabled = false;
this.timer7.Enabled = false; //this.timer7.Enabled = false;
this.timer8.Enabled = false; //this.timer8.Enabled = false;
this.timer9.Enabled = false; //this.timer9.Enabled = false;
this.timer10.Enabled = false; //this.timer10.Enabled = false;
} }
} }
} }
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment