0

我被困在寻找有条不紊的方法或针对以下问题的优化解决方案。

我承认它有点冗长,并想传达我的目标以最大限度地提高清晰度。

我有一个应用程序 (A),它将数据包(一组联系方式)合并并发送到 3 个第三方应用程序(T1、T2、T3),以便按不同的时间安排进行处理。所有这些第三方都以相同的方式处理数据。我们同样维护所有这三个,以避免服务依赖和延迟。

'A' 在上午 8 点到 10 点之间整合数据(最大可达 25 MB)并发送到 T1 进行处理。

“A”在晚上 10.1-12 点之间合并数据(最大为 35 MB)并发送到 T2 进行处理。

“A”在下午 14 点至 16 点之间整合数据(最大为 15 MB)并发送到 T3 进行处理。

最常见的是,由于过载或给定的数据质量,一些第三方仅处理来自“A”的部分提供数据。这些第三方应用程序将向“A”报告已处理和未处理的数据。一旦我有未处理的数据(在应用程序'A'),我想重试将此未处理的数据(数据因素)上传到其他可用的第三方(不包括首先拒绝它的第三方),直到处理完所有数据或者我会接触到所有可用的第三方。

即,如果 T1 留下一些未处理的来自 A 的数据(上午 8 点到 10 点时隙),那么如果 T2 或 T3 进一步考虑数据,我可以接近 T2 或 T3 或两者。相似地;

如果 T2 未从 A 处理(10.1-12 pm 时段),那么如果 T1 或 T3 进一步考虑数据,我可以接近 T1 或 T3 或两者。

如果 T3 尚未从 A(下午 14-16 点时段)处理,那么如果 T1 或 T2 因子数据进一步,我可以接近 T1 或 T2 或两者。

最后,在某一天(晚上 18 点)快结束时,我需要将来自所有第三方的所有未处理数据保存到我的本地数据库中。

我有一个算法草案版本,它基本上使用三个队列(将 T 表示为消费者)和一个生产者数据结构(表示 A)。该生产者数据结构将在单个队列中推送数据卡盘以及到期时间戳。但是,我无法得出结论。

如果您可以指导获得可选的解决方案,请提前致谢。

4

0 回答 0