Skip to content
Projects
Groups
Snippets
Help
Loading...
Help
Submit feedback
Contribute to GitLab
Sign in
Toggle navigation
M
mall.oytour.com
Project
Project
Details
Activity
Releases
Cycle Analytics
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
Issues
0
Issues
0
List
Board
Labels
Milestones
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Charts
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Charts
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
黄奎
mall.oytour.com
Commits
2231c82f
Commit
2231c82f
authored
Jul 01, 2024
by
黄奎
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
定时服务调整
parent
93a5f40a
Hide whitespace changes
Inline
Side-by-side
Showing
3 changed files
with
96 additions
and
123 deletions
+96
-123
TimersHelper.cs
Mall.WindowsService/Helper/TimersHelper.cs
+47
-59
Mall.WindowsService.csproj
Mall.WindowsService/Mall.WindowsService.csproj
+1
-1
WindowsService.cs
Mall.WindowsService/WindowsService.cs
+48
-63
No files found.
Mall.WindowsService/Helper/TimersHelper.cs
View file @
2231c82f
using
Mall.Common.Plugin
;
using
System
;
using
System.Collections.Generic
;
using
System.Text
;
using
System
;
using
System.Threading
;
namespace
Mall.WindowsService.Helper
{
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
inTimer7
=
0
;
private
static
int
inTimer8
=
0
;
...
...
@@ -27,63 +18,62 @@ namespace Mall.WindowsService.Helper
/// <param name="e"></param>
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"
);
Module
.
FinanceModule
.
OrderIncomeFinanceModule
();
LogHelper
.
Write
(
"RevenueFinance=====End"
);
bool
flag
=
Module
.
FinanceModule
.
OrderIncomeFinanceModule
();
LogHelper
.
Write
(
"RevenueFinance=====End "
+
flag
);
#
region
退款制单
LogHelper
.
Write
(
"AutoCreateFinanceRefund=====Start"
);
Module
.
FinanceModule
.
AutoCreateFinanceRefund
();
LogHelper
.
Write
(
"AutoCreateFinanceRefund=====End
"
);
flag
=
Module
.
FinanceModule
.
AutoCreateFinanceRefund
();
LogHelper
.
Write
(
"AutoCreateFinanceRefund=====End
"
+
flag
);
#
endregion
#
region
分享商
VIP
过期时间
LogHelper
.
Write
(
"DistributorVipModule=====Start"
);
Module
.
FinanceModule
.
DistributorVipModule
();
LogHelper
.
Write
(
"DistributorVipModule=====End
"
);
flag
=
Module
.
FinanceModule
.
DistributorVipModule
();
LogHelper
.
Write
(
"DistributorVipModule=====End
"
+
flag
);
#
endregion
#
region
电商统计
if
(
DateTime
.
N
ow
.
Hour
==
1
)
if
(
n
ow
.
Hour
==
1
)
{
LogHelper
.
Write
(
"UpdateToDayUserStatistics=====Start"
);
try
{
new
Module
.
UserStatisticsModule
().
UpdateToDayUserStatistics
(
""
,
""
);
flag
=
new
Module
.
UserStatisticsModule
().
UpdateToDayUserStatistics
(
""
,
""
);
}
catch
(
Exception
ex
)
{
flag
=
false
;
LogHelper
.
Write
(
"UpdateToDayUserStatistics:"
+
ex
.
Message
);
}
LogHelper
.
Write
(
"UpdateToDayUserStatistics=====End
"
);
LogHelper
.
Write
(
"UpdateToDayUserStatistics=====End
"
+
flag
);
}
#
endregion
Interlocked
.
Exchange
(
ref
inTimer
,
0
);
}
}
/// <summary>
/// 自动取消订单
/// 自动取消订单
【10分钟执行一次】
/// </summary>
/// <param name="sender"></param>
/// <param name="e"></param>
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"
);
Module
.
FinanceModule
.
AutoCancelOrder
();
LogHelper
.
Write
(
"AutoCancelOrder=====End"
);
Interlocked
.
Exchange
(
ref
inTimer1
,
0
);
bool
flag
=
Module
.
FinanceModule
.
AutoCancelOrder
();
LogHelper
.
Write
(
"AutoCancelOrder=====End "
+
flag
);
}
}
/// <summary>
/// 自动收货订单
/// </summary>
...
...
@@ -91,38 +81,36 @@ namespace Mall.WindowsService.Helper
/// <param name="e"></param>
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
.
N
ow
.
Hour
==
1
)
if
(
n
ow
.
Hour
==
1
)
{
LogHelper
.
Write
(
"AutoReceivingOrder=====Start"
);
Module
.
FinanceModule
.
AutoReceivingOrder
();
LogHelper
.
Write
(
"AutoReceivingOrder=====End
"
);
bool
flag
=
Module
.
FinanceModule
.
AutoReceivingOrder
();
LogHelper
.
Write
(
"AutoReceivingOrder=====End
"
+
flag
);
}
Thread
.
Sleep
(
1000
*
60
);
LogHelper
.
Write
(
"AutoAfterSaleOrderSendCommission=====Start"
);
Module
.
FinanceModule
.
AutoAfterSaleOrderSendCommission
();
LogHelper
.
Write
(
"AutoAfterSaleOrderSendCommission=====End"
);
Interlocked
.
Exchange
(
ref
inTimer2
,
0
);
bool
flag2
=
Module
.
FinanceModule
.
AutoAfterSaleOrderSendCommission
();
LogHelper
.
Write
(
"AutoAfterSaleOrderSendCommission=====End "
+
flag2
);
}
}
/// <summary>
/// 七天自动取消下线
/// 七天自动取消下线
【每天2:00执行一次】
/// </summary>
/// <param name="sender"></param>
/// <param name="e"></param>
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
)
{
LogHelper
.
Write
(
"AutoReleaseTheOffline=====Start"
);
Module
.
FinanceModule
.
AutoReleaseTheOffline
();
LogHelper
.
Write
(
"AutoReleaseTheOffline=====End"
);
}
Interlocked
.
Exchange
(
ref
inTimer3
,
0
);
Thread
.
Sleep
(
1000
*
60
);
LogHelper
.
Write
(
"AutoReleaseTheOffline=====Start"
);
Module
.
FinanceModule
.
AutoReleaseTheOffline
();
LogHelper
.
Write
(
"AutoReleaseTheOffline=====End"
);
}
}
...
...
@@ -133,8 +121,10 @@ namespace Mall.WindowsService.Helper
/// <param name="e"></param>
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
{
string
str
=
Common
.
Config
.
GetConnectionString
(
"DefaultConnection"
);
...
...
@@ -147,34 +137,32 @@ namespace Mall.WindowsService.Helper
{
LogHelper
.
Write
(
"GoodsShelves=====ex"
+
ex
.
Message
);
}
Interlocked
.
Exchange
(
ref
inTimer4
,
0
);
}
}
/// <summary>
/// 资讯定时上架,下架
/// 资讯定时上架,下架
【每30分钟执行一次】
/// </summary>
/// <param name="sender"></param>
/// <param name="e"></param>
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
{
string
str
=
Common
.
Config
.
GetConnectionString
(
"DefaultConnection"
);
LogHelper
.
Write
(
"EducationArticleShelves=====Start"
+
str
);
Module
.
EducationArticleShelvesModule
.
ShelvesEducationArticleModule
();
Module
.
EducationArticleShelvesModule
.
DownEducationArticleModule
();
LogHelper
.
Write
(
"EducationArticleShelves=====End"
);
LogHelper
.
Write
(
"EducationArticleShelves=====Start"
);
bool
flag1
=
Module
.
EducationArticleShelvesModule
.
ShelvesEducationArticleModule
();
bool
flag2
=
Module
.
EducationArticleShelvesModule
.
DownEducationArticleModule
();
LogHelper
.
Write
(
"EducationArticleShelves=====End flag1:"
+
flag1
+
" flag2:"
+
flag2
);
}
catch
(
Exception
ex
)
{
LogHelper
.
Write
(
"EducationArticleShelves=====ex"
+
ex
.
Message
);
}
Interlocked
.
Exchange
(
ref
inTimer5
,
0
);
}
}
...
...
Mall.WindowsService/Mall.WindowsService.csproj
View file @
2231c82f
<Project Sdk="Microsoft.NET.Sdk">
<PropertyGroup>
<OutputType>Exe</OutputType>
<OutputType>
Win
Exe</OutputType>
<TargetFramework>netcoreapp3.1</TargetFramework>
<StartupObject>Mall.WindowsService.Program</StartupObject>
</PropertyGroup>
...
...
Mall.WindowsService/WindowsService.cs
View file @
2231c82f
using
Mall.Common.Plugin
;
using
System
;
using
System.Collections.Generic
;
using
System.ComponentModel
;
using
System.Data
;
using
System.Diagnostics
;
using
Mall.WindowsService.Helper
;
using
System.ServiceProcess
;
using
System.Text
;
using
Mall.WindowsService.Helper
;
namespace
Mall.WindowsService
{
partial
class
WindowsService
:
ServiceBase
...
...
@@ -16,11 +9,11 @@ namespace Mall.WindowsService
private
System
.
Timers
.
Timer
timer3
;
//订单自动收货计时器
private
System
.
Timers
.
Timer
timer4
;
//七天自动取消下线计时器
private
System
.
Timers
.
Timer
timer5
;
//定时上架和下架
private
System
.
Timers
.
Timer
timer6
;
//资讯定时上架和下架
private
System
.
Timers
.
Timer
timer7
;
//会员储值卡赠送状态更新
private
System
.
Timers
.
Timer
timer8
;
//会员购买储值卡收入
private
System
.
Timers
.
Timer
timer9
;
//相亲每日随机查询信息删除
private
System
.
Timers
.
Timer
timer10
;
//教育咖啡劵
//
private System.Timers.Timer timer6; //资讯定时上架和下架
//
private System.Timers.Timer timer7; //会员储值卡赠送状态更新
//
private System.Timers.Timer timer8;//会员购买储值卡收入
//
private System.Timers.Timer timer9;//相亲每日随机查询信息删除
//
private System.Timers.Timer timer10; //教育咖啡劵
public
WindowsService
()
{
InitializeComponent
();
...
...
@@ -30,9 +23,11 @@ namespace Mall.WindowsService
{
// TODO: 在此处添加代码以启动服务。
Helper
.
LogHelper
.
Write
(
"主服务开始运行......"
);
TimersHelper
helper
=
new
TimersHelper
();
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
.
Enabled
=
true
;
...
...
@@ -40,7 +35,7 @@ namespace Mall.WindowsService
timer2
=
new
System
.
Timers
.
Timer
{
Interval
=
1000
*
(
60
*
10
)
//10分钟处理
一次
Interval
=
1000
*
60
//1分钟检测一次,10分钟执行
一次
};
timer2
.
Elapsed
+=
new
System
.
Timers
.
ElapsedEventHandler
(
helper
.
AutoCancelOrder
);
timer2
.
Enabled
=
true
;
...
...
@@ -48,11 +43,9 @@ namespace Mall.WindowsService
#
endregion
#
region
订单自动完成定时器
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
.
Enabled
=
true
;
...
...
@@ -60,11 +53,9 @@ namespace Mall.WindowsService
#
endregion
#
region
七天自动取消下线
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
.
Enabled
=
true
;
...
...
@@ -72,10 +63,9 @@ namespace Mall.WindowsService
#
endregion
#
region
商品定时上下架
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
.
Enabled
=
true
;
...
...
@@ -83,57 +73,52 @@ namespace Mall.WindowsService
#
region
资讯上下架
timer6
=
new
System
.
Timers
.
Timer
();
timer6
=
new
System
.
Timers
.
Timer
{
Interval
=
1000
*
(
60
*
2
)
//10分钟调用一次
};
timer6
.
Elapsed
+=
new
System
.
Timers
.
ElapsedEventHandler
(
helper
.
EducationArticleShelves
);
timer6
.
Enabled
=
true
;
//timer6 = new System.Timers.Timer
//{
// Interval = 1000 * 60 //1秒检测一次,30分钟执行一次
//};
//timer6.Elapsed += new System.Timers.ElapsedEventHandler(helper.EducationArticleShelves);
//timer6.Enabled = true;
#
endregion
#
region
会员储值卡赠送状态更新
timer7
=
new
System
.
Timers
.
Timer
();
timer7
=
new
System
.
Timers
.
Timer
{
Interval
=
1000
*
(
60
*
10
)
//10分钟调用一次
};
timer7
.
Elapsed
+=
new
System
.
Timers
.
ElapsedEventHandler
(
helper
.
MemberDepositBuyShelves
);
timer7
.
Enabled
=
true
;
//timer7 = new System.Timers.Timer
//{
// Interval = 1000 * (60 * 10) //10分钟调用一次
//};
//timer7.Elapsed += new System.Timers.ElapsedEventHandler(helper.MemberDepositBuyShelves);
//timer7.Enabled = true;
#
endregion
#
region
储值卡收入
timer8
=
new
System
.
Timers
.
Timer
();
timer8
=
new
System
.
Timers
.
Timer
{
Interval
=
1000
*
(
60
*
30
)
//10分钟调用一次
};
timer8
.
Elapsed
+=
new
System
.
Timers
.
ElapsedEventHandler
(
helper
.
DepositIncomeFinanceShelves
);
timer8
.
Enabled
=
true
;
//timer8 = new System.Timers.Timer
//{
// Interval = 1000 * (60 * 30) //10分钟调用一次
//};
//timer8.Elapsed += new System.Timers.ElapsedEventHandler(helper.DepositIncomeFinanceShelves);
//timer8.Enabled = true;
#
endregion
#
region
相亲每日随机查询信息删除
timer9
=
new
System
.
Timers
.
Timer
();
timer9
=
new
System
.
Timers
.
Timer
{
Interval
=
1000
*
(
60
*
240
)
//4小时调用一次
};
timer9
.
Elapsed
+=
new
System
.
Timers
.
ElapsedEventHandler
(
helper
.
DailyRandomShelves
);
timer9
.
Enabled
=
true
;
//timer9 = new System.Timers.Timer
//{
// Interval = 1000 * (60 * 240) //4小时调用一次
//};
//timer9.Elapsed += new System.Timers.ElapsedEventHandler(helper.DailyRandomShelves);
//timer9.Enabled = true;
#
endregion
#
region
咖啡劵定时器
timer10
=
new
System
.
Timers
.
Timer
();
timer10
=
new
System
.
Timers
.
Timer
{
Interval
=
1000
*
(
60
*
2
)
//2 分钟调用一次
};
timer10
.
Elapsed
+=
new
System
.
Timers
.
ElapsedEventHandler
(
helper
.
EduInitFreeCoffee
);
timer10
.
Enabled
=
true
;
//timer10 = new System.Timers.Timer
//{
// Interval = 1000 * (60 * 2) //2 分钟调用一次
//};
//timer10.Elapsed += new System.Timers.ElapsedEventHandler(helper.EduInitFreeCoffee);
//timer10.Enabled = true;
#
endregion
}
...
...
@@ -147,11 +132,11 @@ namespace Mall.WindowsService
this
.
timer3
.
Enabled
=
false
;
this
.
timer4
.
Enabled
=
false
;
this
.
timer5
.
Enabled
=
false
;
this
.
timer6
.
Enabled
=
false
;
this
.
timer7
.
Enabled
=
false
;
this
.
timer8
.
Enabled
=
false
;
this
.
timer9
.
Enabled
=
false
;
this
.
timer10
.
Enabled
=
false
;
//
this.timer6.Enabled = false;
//
this.timer7.Enabled = false;
//
this.timer8.Enabled = false;
//
this.timer9.Enabled = false;
//
this.timer10.Enabled = false;
}
}
}
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment