为了账号安全,请及时绑定邮箱和手机立即绑定

如何对 FileStream / StreamWriter 的多个调用(通过 AJAX)进行排队?

如何对 FileStream / StreamWriter 的多个调用(通过 AJAX)进行排队?

C#
慕少森 2023-07-22 18:38:43
抱歉,如果标题不太正确,我不能 100% 确定我在寻找什么。我有一些代码执行以下操作:public static ProcessData(){    AddNewData()    GetAllData()    BuildTSV();    Send();}它是一个 MVC Web 应用程序,ProcessData 是传递某种表单数据的 Ajax 调用。AddNewData 写入数据库,这是对执行基本插入的存储过程的简单调用。GetAllData 查询数据库,它是单个表上的简单 SELECT 语句。BuildTSV 使用数据库数据构造一个文件,然后将其发送到远程服务器。如果连续足够快地命中 BuildTSV,我会遇到文件锁定问题(而不是数据库)。BuildTSV 使用简单的 StreamWriter。我无法更改此工作流程,我想以某种方式汇集 AddNewData() 调用,然后仅在它们全部完成后才继续。线程?排队?阻止收集?如果文件被锁定,请稍等一下,然后重试?这对我来说是全新的,我正在努力理解 1001 种不同的方法。
查看完整描述

1 回答

?
蝴蝶刀刀

TA贡献1801条经验 获得超8个赞

最后我创建了一个小服务来处理这个问题。

我将查询数据库并跟踪表中的行数。如果此值增加,我将选择所有数据并将其处理为平面文件,然后发送。它每隔几分钟运行一次并解决了我的所有问题。

我以此为起点,基本上转储了负责将数据提取到平面文件中然后发送的现有代码,以及一些添加的日志记录和服务停止时的电子邮件通知。


查看完整回答
反对 回复 2023-07-22
  • 1 回答
  • 0 关注
  • 89 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信