ASPNET/WebApi(5)
-
MySql 에서 schedule 처리 하기
특정 작업을 하다 보면 db 에 data 를 일정 시간마다 update 하는 경우가 생긴다. 일반적으로 back up 같은 경우가 그렇고 daily 마다 reset 하는 table 들도 있을 수 있다. 이런경우 mysql 은 event 를 이용해 처리 한다. 아래 구문은 매 1분 마다 table 을 truncate 하는 구문이다. CREATE EVENT daily_truncate ON SCHEDULE EVERY 1 MINUTE STARTS CURRENT_TIMESTAMP ON COMPLETION PRESERVE DO BEGIN TRUNCATE TABLE your_table_name; END; 문제는 mysql 은 rdbms 이고 관계형 db 는 필연적으로 foreign key 를 갖게된다. 그러다 보니 ..
2024.04.15 -
Quartz 를 이용한 schedule job 처리
프로그래밍을 하다보면 일정시간에 정기적으로 실행되야 하는 process 가 존재한다. 이런 process 를 처리할때 여러가지 방법이 있다. 1. OS 에 특정 기능(scheduler, crontab 등등)을 이용한다. 2. language 의 도움을 받아 timer 로 구현한다. 3. 3rd party library 의 도움을 받는다. 오늘은 이 세가지 중에 3 번을 이용해 보려고 한다. Quartz.net 이라고 dotnet 용 scheduler library(framework) 이다. 우선 web api 의 간단한 project 를 만들고 project folder 로 이동하자 Quartz 를 설치하자 dotnet add package quartz.aspnetcore user 를 생성하는 api 가..
2024.04.08 -
ASPNET 6 Web Api Basic Tutorial 2 / 2 (Swagger, SeriLog, MediatR, EntityFrameworkCore, Scrutor)
Create Project Create Controller Add Swagger Add SeriLog Add MediatR Add EntityFramework Core Add Migration Apply Database 기타 초기화 Add Web Api Refactoring with Extension Method 9. 기타 초기화 Scrutor 추가 개발자 프롬프트에서 프로젝트 폴더로 이동 (현재 .sln 파일이 있는 폴더라면 .csproj 파일이 있는 폴더로 이동) 아래 명령 실행 dotnet add package Scrutor Injectables 폴더 추가 Injectable.cs 추가 namespace WebApiBasicTutorial.Injectables { public interface II..
2022.01.01 -
ASPNET 6 Web Api Basic Tutorial 1 / 2 (Swagger, SeriLog, MediatR, EntityFrameworkCore, Scrutor)
작성 순서 Create Project Create Controller Add Swagger Add SeriLog Add MediatR Add EntityFramework Core Add Migration Apply Database Add Web Api Refactoring with Extension Method 1. Create Project Create 2. Create Controller Add NewFolder to project (Controller) UserController.cs using Microsoft.AspNetCore.Mvc; namespace WebApiBasicTutorial.Controller { [ApiController] [Route("[controller]")] public..
2022.01.01 -
Dotnet 6 Dependency Injection
종속성 클래스와 해당 종속성 간의 Ioc (Inversion of Control)를 실현하는 기술로 DI (Dependency Injection) 라는 디자인 패턴을 지원한다. 종류 (서비스 수명) Transient : 요청할 때마다 만들어 짐, 요청이 끝날때 삭제 ex) AddTransient, TryAddTransient Scoped : 특정 범위( HTTP 요청 당 하나의 인스턴스를 생성)에서 요청할때마다 만들어짐, 요청이 끝날때 삭제 ex) AddScoped, TryAddScoped Singleton : 처음 요청될때 한번 만들어짐 ex) AddSingleton, TryAddSingleton 예제) public interface IMyDependency { void WriteMessage(stri..
2022.01.01