Timer 定时任务

1 篇文章 0 订阅
1 篇文章 0 订阅
public class OnlinePay 
    {
        private static double dayEndStartTime = 0;
        private static double dayEndStopTime = 0;
        private static int retransmitInterval = 0;
        private static System.Timers.Timer timer = null;//添加静态定时任务变量,

        public OnlinePay()
        {
            if (dayEndStartTime == 0)
                dayEndStartTime = Convert.ToDouble(ConfigurationManager.AppSettings["DayEndTimeRange_Start"].ToString());
            if (dayEndStopTime == 0)
                dayEndStopTime = Convert.ToDouble(ConfigurationManager.AppSettings["DayEndTimeRange_Stop"].ToString());
            if (retransmitInterval == 0)
                retransmitInterval = Convert.ToInt32(ConfigurationManager.AppSettings["RetransmitInterval"].ToString());

            #region 定时任务
            if (timer == null)
            {
                timer = new System.Timers.Timer(retransmitInterval * 1000);
                timer.AutoReset = true;
                timer.Enabled = true;
                timer.Elapsed += Timer_Elapsed;
            }
            else
            {
                timer.Interval = retransmitInterval * 1000;
                timer.Enabled = Convert.ToBoolean(ConfigurationManager.AppSettings["IsStartTask"].ToString());
            }
            #endregion
        }

        /// <summary>
        /// 每小时重传一次OnlinePay数据
        /// 间隔固定时间执行
        /// </summary>
        private void Timer_Elapsed(object sender, System.Timers.ElapsedEventArgs e)
        {
            if (DateTime.Now.TimeOfDay > TimeSpan.FromHours(dayEndStartTime) || DateTime.Now.TimeOfDay < TimeSpan.FromHours(dayEndStopTime))
            {
                //不操作了,晚上歇歇
            }
            else
            {
                //给同步OnlinePay数据,每小时一次

            }
        }
    }

Web.Config配置项


    <!--DayEndTime Setting(start time: 22; stop time: 7),Dayend执行期间:晚上22点 < 当前时间 < 第二天早7点-->
    <add key="DayEndTimeRange_Start" value="22"/>
    <add key="DayEndTimeRange_Stop" value="7"/>
    <!--Retransmit Interval(重发间隔:默认3600s)-->
    <add key="RetransmitInterval" value="3600"/>
    <!--是否启动定时任务,由于有负载均衡,所以添加一个开关(True/False)-->
    <add key="IsStartTask" value="False"/>
    <!--DayEndTime Setting(start time: 22; stop time: 7),Dayend执行期间:晚上22点 < 当前时间 < 第二天早7点-->

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值