zoukankan      html  css  js  c++  java
  • Global定时器任务使用。.NET定时执行方法

    using System;
    using System.Collections.Generic;
    using System.Linq;
    using System.Threading;
    using System.Web;
    using System.Web.Optimization;
    using System.Web.Routing;
    using System.Web.Security;
    using System.Web.SessionState;
    using BLL;
    using DAL;
    using DingTalk.Api.Response;
    using Model;
    using Newtonsoft.Json.Linq;
    using DingTalk.Api;
    using DingTalk.Api.Request;
    //using MyWeb.Common;
    using static DingTalk.Api.Response.OapiDepartmentListResponse;
    using System.Text;
    using System.Data;
    using System.Data.SqlClient;
    using static DingTalk.Api.Response.OapiAttendanceListscheduleResponse;
    using Newtonsoft.Json;
    using static DingTalk.Api.Response.OapiProcessinstanceGetResponse;
    using System.Configuration;
    using System.Net;
    using System.IO;
    
    namespace MyProject
    {
        public class Global : HttpApplication
        {
            
    
            void Application_Start(object sender, EventArgs e)
            {
                // 在应用程序启动时运行的代码。更新完,打开http://m.91zn.cn:81/AmebaScore/Test01.aspx激活一下应用程序池
    
                Thread t1 = new Thread(new ThreadStart(time001));
                t1.Start();
    
                Thread t2 = new Thread(new ThreadStart(time002));
                t2.Start();
    
                Thread t3 = new Thread(new ThreadStart(time003));
                t3.Start();
                
            }
    
            #region 定时器---获取钉钉全部通讯录人员
            private void time001()
            {
                System.Timers.Timer MyTimerGetdingdingUser = new System.Timers.Timer();
                //MyTimerGetdingdingUser.Elapsed += GetMyUser;
                MyTimerGetdingdingUser.Interval = 1000 * 60 * 60;//每天触发一次1000是一秒
                //MyTimerGetdingdingUser.Interval = 1000 * 120;//每天触发一次1000是一秒
                MyTimerGetdingdingUser.Enabled = true;
                MyTimerGetdingdingUser.AutoReset = true;
                MyTimerGetdingdingUser.Start();
                MyTimerGetdingdingUser.Elapsed += new System.Timers.ElapsedEventHandler(GetMyUser);
    
            }
            #endregion
    
            #region 定时器---同步HIS上开检验单数据到LIS瑞美
            private void time002()
            {
    
                System.Timers.Timer MyTimerTongBuHisLis = new System.Timers.Timer();
                MyTimerTongBuHisLis.Elapsed += TongBuHisLis;
                //MyTimerTongBuHisLis.Interval = 1000 * 60 * 60 * 24;//每天触发一次1000是一秒
                MyTimerTongBuHisLis.Interval = 1000 * 10;//每天触发一次1000是一秒
                MyTimerTongBuHisLis.Enabled = true;//false
                MyTimerTongBuHisLis.AutoReset = true;
    
    
            }
            #endregion
    
            #region 定时器---同步钉钉排班
            private void time003()
            {
                
                System.Timers.Timer MyTimerTongBuPaiBan = new System.Timers.Timer();
                MyTimerTongBuPaiBan.Elapsed += TongBuDDPaiBan;
                MyTimerTongBuPaiBan.Interval = 1000 * 60 * 30;//每小时触发一次1000是一秒
                //MyTimerTongBuPaiBan.Interval = 1000 * 200;//每天触发一次1000是一秒
                MyTimerTongBuPaiBan.Enabled = true;//false
                MyTimerTongBuPaiBan.AutoReset = true;
    
            }
            #endregion
    
            #region 定时器---获取钉钉全部通讯录人员
    
            void GetMyUser(object sender, System.Timers.ElapsedEventArgs e)
            {
                TimerTask.GetMyUser();
            }
            #endregion
            
            #region 同步HIS上开检验单数据到LIS瑞美
            void TongBuHisLis(object sender, System.Timers.ElapsedEventArgs e)
            {
                // AND DATEDIFF(dd,t1.sqsj,GETDATE()) = 0 
                StringBuilder sbhcsqh = new StringBuilder();
                string sql = @" 
                    SELECT t2.sqh,t2.brly,0 AS ifjz ,t2.brdh,t2.brxm,CASE brxb WHEN '男' THEN '1' ELSE '2' END AS patsex,brsr,ch,sqys,ksdh,zd,'' AS testname,t3.item,0 AS mode
    	                FROM Lis_SQH t1
    	                INNER JOIN SQLHIS.dbo.v_HIS_Lis_pat t2 ON t1.sqh=t2.sqh
    	                INNER JOIN 
    	                (
    		                SELECT sqh
    		                 ,item = stuff((
    			                SELECT xmdh + ',' + XMMC + ',' + convert(varchar(50),dj) + ',' + convert(varchar(50),sl) + '|'
    			                FROM SQLHIS.dbo.v_HIS_Lis_pat_mx
    			                WHERE sqh = a.sqh
    			                FOR XML path('')
    		                ), 1, 0, '')
    		                FROM SQLHIS.dbo.v_HIS_Lis_pat_mx a	--需要同步的申请单的项目的明细的视图@item ='501404,孕酮P,50,1|501396,雌二醇,50,1|'
    		                GROUP BY sqh
    	                ) t3 ON t2.sqh=t3.sqh
    	                WHERE t1.state=0 
    	
    	                UNION ALL
    	
    	                SELECT t2.sqh,t2.brly,0 AS ifjz,t2.brdh,t2.brxm,CASE brxb WHEN '男' THEN '1' ELSE '2' END AS patsex,brsr,ch,sqys,ksdh,zd,'' AS testname,t3.item,0  AS mode
    	                FROM Lis_SQH t1
    	                INNER JOIN SQLHIS_mq.dbo.v_HIS_Lis_pat t2 ON t1.sqh=t2.sqh
    	                INNER JOIN 
    	                (
    		                SELECT sqh
    		                 ,item = stuff((
    			                SELECT xmdh + ',' + XMMC + ',' + convert(varchar(50),dj) + ',' + convert(varchar(50),sl) + '|'
    			                FROM SQLHIS_mq.dbo.v_HIS_Lis_pat_mx
    			                WHERE sqh = a.sqh
    			                FOR XML path('')
    		                ), 1, 0, '')
    		                FROM SQLHIS_mq.dbo.v_HIS_Lis_pat_mx a	--需要同步的申请单的项目的明细的视图@item ='501404,孕酮P,50,1|501396,雌二醇,50,1|'
    		                GROUP BY sqh
    	                ) t3 ON t2.sqh=t3.sqh
    	                WHERE t1.state=0 
                    ";
                DataTable table = SqlHelperSQLHIS.ExecuteReader(sql, CommandType.Text);
                if (table == null || table.Rows.Count == 0)
                {
                }
                else
                {
                    //v_HIS_Lis_patModel v_HIS_Lis_patModel = null;
                    int ire = 0;
                    for (int i = 0; i < table.Rows.Count; i++)
                    {
                        sbhcsqh.Append("'" + table.Rows[i]["sqh"] + "',");//把此次同步的申请单号存起来,作为回改state=1用
                        //v_HIS_Lis_patModel.DingdingUserid = table.Rows[i]["dingdingUserid"] == DBNull.Value ? "" : (string)table.Rows[i]["dingdingUserid"];
                        //v_HIS_Lis_patModel = new v_HIS_Lis_patModel();
                        SqlParameter[] parameters = new SqlParameter[]
                        {
                            new SqlParameter("@applyno", SqlDbType.VarChar, 500),
                            new SqlParameter("@pattype", SqlDbType.VarChar, 500),
                            new SqlParameter("@ifjz", SqlDbType.Int, 50),
                            new SqlParameter("@patno", SqlDbType.VarChar, 500),
                            new SqlParameter("@patname", SqlDbType.VarChar, 500),
                            new SqlParameter("@patsex", SqlDbType.VarChar, 500),
                            new SqlParameter("@patbrith", SqlDbType.DateTime, 500),
                            new SqlParameter("@bedno", SqlDbType.VarChar, 500),
                            new SqlParameter("@docna", SqlDbType.VarChar, 500),
                            new SqlParameter("@depno", SqlDbType.VarChar, 500),
                            new SqlParameter("@dianose", SqlDbType.VarChar, 500),
                            new SqlParameter("@testname", SqlDbType.VarChar, 500),
                            new SqlParameter("@item", SqlDbType.NText, 4000),
                            new SqlParameter("@mode", SqlDbType.Int, 20)
                        };
                        parameters[0].Value = table.Rows[i]["sqh"];
                        parameters[1].Value = table.Rows[i]["brly"];
                        parameters[2].Value = Convert.ToInt32(table.Rows[i]["ifjz"]);
                        parameters[3].Value = table.Rows[i]["brdh"];
                        parameters[4].Value = table.Rows[i]["brxm"];
                        parameters[5].Value = table.Rows[i]["patsex"];
                        parameters[6].Value = Convert.ToString(table.Rows[i]["brsr"]);
                        parameters[7].Value = Convert.ToString(table.Rows[i]["ch"]);
                        parameters[8].Value = table.Rows[i]["sqys"];
                        parameters[9].Value = table.Rows[i]["ksdh"];
                        parameters[10].Value = table.Rows[i]["zd"];
                        parameters[11].Value = Convert.ToString(table.Rows[i]["testname"]);
                        parameters[12].Value = table.Rows[i]["item"];
                        parameters[13].Value = Convert.ToInt32(table.Rows[i]["mode"]);
                        ire = SqlHelperLis2002ywq.ExecuteNonQuery("sp_lisapp", CommandType.StoredProcedure, parameters);
    
    
                    }
                    if (ire > 0)
                    {
                        //回改sbhcsqh里的state=1
                        string strhgsql = "UPDATE lis_sqh SET state=1 WHERE sqh IN(" + sbhcsqh.ToString().Substring(0, sbhcsqh.ToString().Length - 1) + ")";
                        SqlHelperSQLHIS.ExecuteNonQuery(strhgsql, CommandType.Text);
                    }
                }
            }
            #endregion
            
            #region 同步钉钉排班
            void TongBuDDPaiBan(object sender, System.Timers.ElapsedEventArgs e)
            {
                TimerTask.TongBuDDPaiBan();
            }
            #endregion
            
            #region 临时类
    
            /// <summary>
            /// 返回给ajax请求的结果类
            /// </summary>
            private class ResultInfo
            {
                /// <summary>
                /// 是否成功, true:成功 false:失败
                /// </summary>
                public bool State { get; set; }
                /// <summary>
                /// 返回的数据集
                /// </summary>
                public object Data { get; set; }
                /// <summary>
                /// 成功信息
                /// </summary>
                public string Message { get; set; }
                /// <summary>
                /// 错误信息
                /// </summary>
                public string ErrorMsg { get; set; }
                /// <summary>
                /// 当前第几页
                /// </summary>
                public int PageIndex { get; set; }
                /// <summary>
                /// 记录总数
                /// </summary>
                public int RecordCount { get; set; }
            }
            private class userid02
            {
                /// <summary>
                /// 员工工号
                /// </summary>
                public string Jobnumber { get; set; }
                /// <summary>
                /// 钉ID
                /// </summary>
                public string Userid { get; set; }
            }
    
    
    
            #endregion
    
            protected void Application_End(object sender, EventArgs e)
            {
    
                SqlHelperSQLHIS.ExecuteNonQuery(" INSERT INTO a_test (cont) VALUES ('程序回收了') ", CommandType.Text);
    
                //下面的代码是关键,可解决IIS应用程序池自动回收的问题  
                Thread.Sleep(1000);
    
                //这里设置你的web地址,可以随便指向本项目你的任意一个aspx页面甚至不存在的页面,目的是要激发Application_Start  
                string url = "http://XXXXX/Test01.aspx";
                HttpWebRequest myHttpWebRequest = (HttpWebRequest)WebRequest.Create(url);
                HttpWebResponse myHttpWebResponse = (HttpWebResponse)myHttpWebRequest.GetResponse();
                Stream receiveStream = myHttpWebResponse.GetResponseStream();//得到回写的字节流  
                SqlHelperSQLHIS.ExecuteNonQuery(" INSERT INTO a_test (cont) VALUES ('程序自动重新启动了') ", CommandType.Text);
            }
    
        
    
      
    
    
    
    
    
    
    
    
        }
    }
    

      

  • 相关阅读:
    Updates were rejected because the tip of your current branch is behind 问题出现解决方案
    git初始化本地项目及关联github远程库
    git项目提交后执行添加忽略操作
    HTML5基础总结
    图表Echarts的使用
    百度API使用--javascript api进行多点定位
    HtmlAgilityPach基本使用方法
    Redis可以做哪些事儿?
    Asp.Net将Session保存在数据库中
    css基础学习
  • 原文地址:https://www.cnblogs.com/wybshyy/p/13806623.html
Copyright © 2011-2022 走看看