특정 경험이 있는 개발자는 백그라운드 서비스에 노출되어 있는 한 서비스 생성, 스케줄링 로직 처리, 비즈니스 로직 작성 및 기타 링크와 분리될 수 없습니다. 새로운 백그라운드 서비스 프로젝트를 생성할 때 이전 코드를 복사하고 일부 스레드 및 기타 메서드를 작성하여 이를 완료한 다음 서비스 설치를 처리하는 경우가 많습니다. 대부분의 시간은 이러한 반복적인 작업에 낭비됩니다.
여기서 제공하는 것은 간단한 백그라운드 서비스 처리 프레임워크입니다(지정된 간격으로 실행, 매일 지정된 시간에 하루에 한 번 실행, 지정된 시간에 한 번 실행, 시작 및 끝 지정). 매일 지정된 실행 간격에 따라), 새로운 예약된 서비스 작업을 개발할 때 추상 클래스 메서드를 구현하고, 작업 구성을 추가하고, 설치 스크립트를 실행하기만 하면 서비스 개발이 완료됩니다.
프레임 코드 경로: 프레임워크 코드
프레임워크는 작업의 실행 논리를 제어하기 위한 실행 유형 구성을 지원합니다.
지정된 간격으로 실행
하루에 한 번 지정된 시간에 실행
지정된 시간에 한 번 실행
지정 매일 시작 시간과 끝 시간을 지정하고, 지정된 간격으로 실행
다음은 저장 프로시저를 정기적으로 실행하는 작업입니다.
기본 클래스 상속 및 비즈니스 로직 코드 작성
using DataAccessHelper.SQLHelper;using Services.Common;using System;namespace Services.Tasks { public class CallProcTask : ServiceBase { protected override void Exec() { try { if (_isStart) { if (!string.IsNullOrWhiteSpace(Config.Param)) { LogFactory.GetLogger().Info(string.Format("开始执行存储过程 {0}", Config.Param)); SQLHelperFactory.Instance.ExecuteNonQuery(Config.Param, null); LogFactory.GetLogger().Info(string.Format("执行存储过程 {0} 完成", Config.Param)); } } } catch (Exception ex) { LogFactory.GetLogger().Error(string.Format("执行存储过程 {0} 异常:{1}", Config.Param, ex)); } } } }
서비스 이름 구성
각 실행 간격을 60초로 구성
[ { //循环执行任务 每次执行间隔60秒 "ServiceName": "CallProcTask-proc_test任务",//服务名称 非空 "Assembly": "Services.exe",//程序集 非空 "Methods": "Services.Tasks.CallProcTask",//执行类名 对应业务的类名 非空 "S_Interval": 60,//间隔时间 单位秒 "ExecType": 0,//执行类型 ( 0:按指定间隔时间执行 1:每天指定时间执行 每天一次 2:指定时间执行一次 3.每天指定开始和结束时间并且按照指定间隔时间执行) 可空默认0 "Param": "proc_test"//自定义参数 在本案例中为SQL参数 可空 } ]
작성 완료 후 컴파일 그리고 다음을 실행하세요. 설치하세요. bat 서비스 관리자에서 해당 서비스를 확인하세요.
프레임 코드 경로: 프레임워크 코드
위 내용은 .NET 백그라운드 타이밍 서비스 프레임워크에 대한 간략한 소개의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!