【问题标题】:How to run code at a specific time in ASP.NET如何在 ASP.NET 中的特定时间运行代码
【发布时间】:2019-05-15 07:35:19
【问题描述】:

我有 ASP.NET MVC 5 应用程序。我的应用程序的关键功能之一是上传 pdf 文件并通过 ocr 读取一些值并制作其他内容。

现在我想实现功能,通过它我的应用程序应该在特定时间检查特定文件夹,例如(pdf_folder)并检查是否有 pdf 文件并自动上传每个 pdf 并执行其余的我的应用程序的逻辑。上传完所有文件后,应将所有文件移至另一个文件夹(finished_folder)。

例如,这是我的控制器,它在用户通过我的应用程序手动上传 pdf 时处理上传文件。 我只是想在特定时间自动完成这个过程。

 public ActionResult GetAlreadyScannedFileList(HttpPostedFileBase file)
    {
        string path = "";

        if (file != null && file.ContentLength > 0)
        {


                UploadFileModel uploadFileModel = new UploadFileModel();

                uploadFileModel.FileName = path;
                uploadFileModel.UserId = 1;

                //Unique guid should be generated for each and every uplaoded file.
                Guid guid;
                Session["Guid"] = guid = _uploadFileService.AddUploadFile(uploadFileModel);

                //Save chnages.
                _unitOfWork.Commit();

                UploadFileModel uploadFile = _uploadFileService.GetUploadFileByGuid(guid);
                int uploadFileId = uploadFile.UploadFileId;

                _uploadFileService.ArchiveUploadFile(uploadFile.FileName);

                //send complete mail
                _uploadFileService.SendMailAfterComplete(uploadFileId);

                return RedirectToAction("SplittedItems", "UploadFile", new { id = uploadFileId });


                return RedirectToAction("GetAlreadyScannedFileList");

    }
}

任何帮助将不胜感激。

【问题讨论】:

    标签: c# asp.net-mvc pdf file-upload web-applications


    【解决方案1】:

    这个问题有很多解决方案。以下是我使用的 2 个选项:

    1. 使用 Quartz.Net 库来创建计划任务。 Documentation
    2. 例如,编写一个控制台应用程序,并将其添加到 Windows 调度程序中。应用程序将调用所需的方法。
    3. 对于点网核心应用程序:Implement background tasks

    这些方法解决了应用程序睡着的问题

    【讨论】:

      【解决方案2】:

      您必须为此任务使用后台作业。 有两种方法

      1. 使用任务调度程序(您需要创建一个控制台应用程序 您的逻辑,例如您要执行的任务)并将其添加到任务 调度程序。
      2. 使用hangfire (https://www.hangfire.io/)

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 2021-10-12
        • 1970-01-01
        • 2013-04-18
        • 1970-01-01
        • 2022-01-24
        • 2012-04-29
        相关资源
        最近更新 更多