2016-08-24 6 views
1

특정 시간까지 사용자에게 전자 메일을 보내기위한 시스템이 있습니다. ASP.NET MVC4에 내장되어 있으며 메시지의 시간을 확인하고 메시지의 요일이 오늘 인 경우 전송하는 "function"이라는 작업 결과가 있습니다."Action Result"호출 방법 ASP.NET MVC 특정 시간에 (일별)

효율적으로 스케줄러처럼이 작업 결과를 (매일) 호출 할 수 있습니까?

감사합니다.

+0

전자 메일을 보내고 서버에서 예약 된 작업을 설정하여 매일 실행하도록 별도의 응용 프로그램을 만들 것입니다. 이런 웹 응용 프로그램에서 타이머를 설정하는 것은 위험합니다. 일정 기간 동안 응용 프로그램에 액세스하지 않으면 IIS가 응용 프로그램과 함께 일상 업무를 언로드 할 수 있습니다. – itsme86

+0

MVC 작업을 엄격하게 사용하지 않으려면 hangfire.io를 확인하십시오. 그것은 굉장. http://hangfire.io – Developer

답변

2

별도의 서비스/응용 프로그램이 더 좋을지라도 wget을 사용할 수 있습니다.

GNU를 Wget은 HTTP, HTTPS 및 FTP 가장 널리 사용되는 인터넷 프로토콜을 사용하여 파일을 검색하기위한 무료 소프트웨어 패키지입니다. 그것은 비 대화식 명령 행 도구, 그래서 쉽게, X-Windows 지원없이 스크립트, cron 작업, 터미널에서 호출 할 수있다 등

그런 다음 할 것 같은 뭔가 :

"C:\Program Files (x86)\GnuWin32\bin\wget.exe" --no-check-certificate https://www.exammple.com/YouController/YourAction -O NUL 

.bat 파일에 저장하고 필요한 시간에 Windows 예약 된 작업을 통해 실행하도록 설정하십시오 (60 초 미만으로 실행하지 않아도된다고 가정 할 경우, 다른 방법이 있으므로 알려주십시오. 이 대신 윈도우 서비스를 사용하여 박쥐 파일을 호출). 당신이 볼 수 있도록 모든 일을 성공적으로 실행 한 경우에도 출력을 저장할 것 -O NUL 부분을 생략

:

public ActionResult YourAction() 
{ 
    //Do your code, get some stats that show it ran properly. 
    return Content("Return your stats here."); 
} 

컨트롤러 액션에서.

+0

시간이 일, 시간 및 분에 있다면, 특정 시간 (예 : 26/8/2016 03:44 pm)까지 이메일을 보내겠습니까? –

+0

예약 된 작업을 수행하도록 설정할 수 있습니다. 그 시간에 시작하도록 설정하고 24 시간마다 실행하십시오. 당신이 할 수있는 또 다른 일은 행동에 수표를 추가하여 시간이 정확한지 확인하고 그렇지 않다면 잠시 잠을 자도록하는 것입니다. – webnoob

0

Windows 서비스로 새 응용 프로그램을 만들 때 더 효율적입니다. 특정 시간에 쉽게 시작할 수있는 코드를 설정할 수 있습니다. 이 솔루션에서는 유연성과 독립성이 향상됩니다. 대여를 시작할 수 있습니다 : Windows Service to run a function at specified time

0

전자 메일을 보내는 API 만 호출하는 작은 콘솔 응용 프로그램을 만들 수 있습니다. 그런 다음 Windows 스케줄러를 사용하여 특정 시간에 실행되도록 콘솔 앱을 예약 할 수 있습니다. 콘솔 창을 표시하지 않고 실행할 수도 있습니다. 작업을 예약하는 방법에 대한 자세한 내용은 here 또는 here을 참조하십시오.