如何以指定的间隔/时间自动导出文件?

时间:2012-06-20 01:36:11

标签: c# asp.net-mvc-3

我有以下代码,当单击链接以供用户保存时,它会返回.CSV文件:

public FileContentResult DownloadCSV()
{
    StringBuilder sb = new StringBuilder();
    var props = typeof(PenCalcModel).GetProperties();
    var penSummary = PenSummaryReport(new DateTime(DateTime.Today.Ticks, DateTimeKind.Utc), new DateTime(DateTime.Today.AddDays(1).Ticks, DateTimeKind.Utc), "");

    foreach (PenCalcModel item in penSummary)
    {
        sb.Append(string.Join(",", props.Select(p=>p.GetValue(item,null).ToString())));
        sb.AppendLine();
    }

    return File(new System.Text.UTF8Encoding().GetBytes(sb.ToString()), "text/csv", "PenReport.csv");
}

有没有办法让我可以将其设置为每隔X小时将从服务器导出到网络驱动器的完全相同的.CSV文件?

2 个答案:

答案 0 :(得分:3)

将任何设置为计划任务/作业都不应该是Web应用程序的责任。该应用程序可以随时回收,甚至可以中断该工作。这些类型的实现应该是Windows服务或服务器上某种基于任务的作业的责任。简短的回答,不要在网络应用程序中这样做。

答案 1 :(得分:1)

我可能会使用powershell脚本来下载内容,并使用预定的Windows任务来触发它。在此问题中有几个下载内容的示例:download url content