| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122 |
- using System;
- using System.Collections.Generic;
- using System.Linq;
- using System.Threading.Tasks;
- using Microsoft.AspNetCore.Mvc;
- using Hangfire;
- using System.Net;
- using System.IO;
- using System.Text;
- using NLog;
- //using Microsoft.Extensions.Logging;
- namespace WebApplication1.Controllers
- {
- [Route("api/[controller]/[action]")]
- public class ValuesController : Controller
- {
- static Logger Logger = LogManager.GetCurrentClassLogger();
- #region 四个定时基础方法
- /// <summary>
- /// 基于队列的任务处理(Fire-and-forget jobs)
- /// </summary>
- /// <param name="str"></param>
- /// <returns></returns>
- public string Enqueue(string str)
- {
- var jobId = BackgroundJob.Enqueue(
- () => Console.WriteLine("Fire-and-forget!"));
- return $"基于队列的任务处理 Enqueue : jobId={jobId}";
- }
- /// <summary>
- /// 延迟任务执行(Delayed jobs)
- /// </summary>
- /// <returns></returns>
- public string Delayed()
- {
- var jobId = BackgroundJob.Schedule(
- () => Console.WriteLine("Delayed!"),
- TimeSpan.FromSeconds(10));
- return $"延迟任务执行 Delayed : jobId={jobId}";
- }
- /// <summary>
- /// 定时任务执行(Recurring jobs)
- /// </summary>
- /// <returns></returns>
- public string Recurring()
- {
- RecurringJob.AddOrUpdate(() => Console.Write("定时任务执行 Recurring "), "1/1 * * * *");
- return $"定时任务执行 Recurring ";
- }
- /// <summary>
- /// 延续性任务执行
- /// </summary>
- public string Continuations(string jobId)
- {
- BackgroundJob.ContinueWith(
- jobId, () => Console.WriteLine("Continuation!"));
- return $"延续性任务执行 Continuation ";
- }
- #endregion
- /// <summary>
- /// 定时任务执行导出
- /// </summary>
- /// <returns></returns>
- public string RecurringToExport()
- {
- RecurringJob.AddOrUpdate(() => HttpGetExport(), Cron.Minutely);
- return $"定时任务执行导出 api/Values/Export/ ";
- }
- private void HttpGetExport()
- {
- try
- {
- Logger.Info("定时任务执行【导出】【开始】 api/Values/Export/");
- HttpWebRequest request = (HttpWebRequest)WebRequest.Create("http://localhost:8082/api/Values/Export?start=2017-12-08&end=2017-12-09");
- request.Method = "GET";
- request.ContentType = "text/html;charset=UTF-8";
- HttpWebResponse response = (HttpWebResponse)request.GetResponse();
- Stream myResponseStream = response.GetResponseStream();
- StreamReader myStreamReader = new StreamReader(myResponseStream, Encoding.UTF8);
- var result = myStreamReader.ReadToEnd();
- myStreamReader.Close();
- myResponseStream.Close();
- if (result != "定时导出Excel文件,并保存Excel文件信息到数据库中")
- throw new Exception("导出错误");
- Logger.Info("定时任务执行【导出】【结束】 api/Values/Export/");
- }
- catch (Exception e)
- {
- Logger.Error(e, "定时任务执行【导出】【失败】 api/Values/Export/");
- }
- }
- public string Log()
- {
- Logger.Info("普通信息日志-----------");
- Logger.Debug("调试日志-----------");
- Logger.Error("错误日志-----------");
- Logger.Fatal("异常日志-----------");
- Logger.Warn("警告日志-----------");
- Logger.Trace("跟踪日志-----------");
- Logger.Log(NLog.LogLevel.Warn, "Log日志------------------");
- return "记录日志";
- }
- }
- }
|