我的要求是结构化的 trio 伪代码(实际的 trio 函数调用,但 dummy worker-does-work-here 填充),以便我可以理解并尝试在同步和异步进程之间切换的良好流控制实践。
我想做以下...
- 将 json-data 文件加载到 data-dict 中
- 另外:数据字典看起来像 { 'key_a': {(info_dict_a)}, 'key_b': {info_dict_b} }
- 让每个 n 个工人...
- 访问该数据字典以查找下一个要处理的记录信息字典
- 从正在处理的记录中准备一些数据并将数据发布到 url
- 处理后响应以更新正在处理的记录信息字典中的“响应”键
- 使用密钥的 info-dict 更新 data-dict
- 用更新的 data-dict 覆盖 json-data 的原始文件
旁白:我知道除了笨拙地重复重写 json 文件之外,还有其他方法可以实现我的总体目标——但我不是要求输入;我真的很想很好地理解三重奏,以便能够将它用于此流程。
所以,我想要同步的过程:
- 获取下一条记录到处理信息字典
- 数据字典的更新
- 用更新的 data-dict 覆盖 json-data 的原始文件
三重奏的新手,我在这里有工作代码......我相信这是同步获取下一个记录到处理(通过使用 trio.Semaphore() 技术)。但我很确定我没有同步保存文件。
几年前学习 Go 时,我觉得我摸索了交织同步和异步调用的方法——但还没有三重奏。提前致谢。