我有 ASP.NET MVC 5 应用程序。我的应用程序的关键功能之一是上传 pdf 文件并通过 ocr 读取一些值并制作其他内容。
现在我想要实现功能,我的应用程序应该通过该功能在特定时间检查特定文件夹(例如 pdf_folder)并检查是否有一个或多个 pdf 文件并自动上传每个 pdf 并执行其余部分我的应用程序的逻辑。完成所有文件的上传后,它应该全部移动到另一个文件夹 (finished_folder)。
例如,这是我的 Controller ,它在用户通过我的应用程序手动上传 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");
}
}
如有任何帮助,我们将不胜感激。
最佳答案
这个问题有很多解决方案。这是我使用的 2 个选项:
- 使用库 Quartz.Net 创建计划任务。 Documentation
- 例如,编写控制台应用程序并将其添加到 Windows 调度程序。应用程序将调用所需的方法。
- 点网核心应用:Implement background tasks
这些方法解决了应用休眠的问题
关于c# - 如何在 ASP.NET 中的特定时间运行代码,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56143896/