繁体   English   中英

如何将多个调用(通过AJAX)排队到FileStream / StreamWriter?

[英]How to queue multiple calls (via AJAX) to FileStream / StreamWriter?

抱歉,如果标题不太正确,则不能100%确定我要查找的内容。

我有一些代码执行以下操作:

public static ProcessData()
{
    AddNewData()
    GetAllData()
    BuildTSV();
    Send();
}

这是一个MVC Web应用程序,ProcessData是一个Ajax调用,用于传递某些表单数据。 AddNewData写入数据库是对存储过程的简单调用,该过程执行基本的INSERT。 GetAllData查询数据库,它是在单个表上的简单SELECT语句。 BuildTSV使用db数据构造一个文件,然后将其发送到远程服务器。

如果BuildTSV连续击中足够快,我会遇到文件锁定问题(不是数据库)。 BuildTSV使用一个简单的StreamWriter。

我无法更改此工作流程,我想以某种方式合并AddNewData()调用,然后仅在它们全部完成后继续进行。

穿线? 队列? BlockingCollection? 等待文件是否被锁定,然后重试?

这对我来说是全新的,并且努力理解1001种不同的方法。

最后,我创建了一个微型服务来处理此问题。

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

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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM