当前位置: 首页 > news >正文

Python同步异步问题三:一个小错误而可能造成无法营业

上一篇我们解决了职责不明的问题。

本文解决:有一道菜错误而整个套餐都无法上菜的问题。

一、问题

热菜过期,造成整个套餐都无法上菜。

import asyncio
import timeasync def cooking(chef, name ,during,faulty_recipe):if faulty_recipe:raise ValueError(f"{name} 的食材过期了")print(chef,"开始做",name)await asyncio.sleep(during)print(name,"好了")async def main():await asyncio.gather(cooking("小王", "凉拌黄瓜", 2,False),cooking("小李", "西湖醋鱼", 5,True),cooking("小张", "紫菜蛋花汤", 3,False))print("套餐全部做好了")if __name__ == '__main__':begin_time = time.time()asyncio.run(main())end_time = time.time()print("套餐耗时:", round((end_time - begin_time),2),"分钟")

二、解决办法

使用return_exceptions解决

import asyncio
import timeasync def cooking(chef, name ,during,faulty_recipe):if faulty_recipe:raise ValueError(f"{name} 的食材过期了")print(chef,"开始做",name)await asyncio.sleep(during)print(name,"好了")async def main():results = await asyncio.gather(cooking("小王", "凉拌黄瓜", 2,False),cooking("小李", "西湖醋鱼", 5,True),cooking("小张", "紫菜蛋花汤", 3,False),return_exceptions=True)faulty_recipe_count = 0for result in results:if isinstance(result, Exception):faulty_recipe_count += 1print("一共做了",len(results),"个菜,其中过期了",faulty_recipe_count,"个菜,该菜不能上")if faulty_recipe_count > 0:print("套餐菜品未上齐,给顾客3折优惠")if __name__ == '__main__':begin_time = time.time()asyncio.run(main())end_time = time.time()print("套餐耗时:", round((end_time - begin_time),2),"分钟")

三、管理视角:风险管理与应急预案

作为管理者,你需要预见可能的风险,并制定相应的应急预案。通过提前准备,可以最大限度地降低突发事件带来的损失。

  • 风险识别:识别潜在的风险点,并评估其影响程度。
  • 应急预案:为关键环节制定应急预案,确保在出现问题时能够迅速响应。

相关文章:

  • 5月26日day37打卡
  • 15.2【基础项目】使用 TypeScript 实现密码显示与隐藏功能
  • 基于 uni-app + <movable-view>拖拽实现的标签排序-适用于微信小程序、H5等多端
  • TypeScript 针对 iOS 不支持 JIT 的优化策略总结
  • iOS 响应者链详解
  • GitLab 从 17.10 到 18.0.1 的升级指南
  • OpenSSL 签名格式全攻略:深入解析与应用要点
  • 【东枫科技】基于Docker,Nodejs,GitSite构建一个KB站点
  • Android 之 kotlin 语言学习笔记一
  • AI智能分析网关V4室内消防逃生通道占用检测算法打造住宅/商业/工业园区等场景应用方案
  • 快递实时查询API开发:物流轨迹地图集成教程
  • RPA 自动化程序深度解析:从入门到企业级应用实战指南
  • Parasoft C++Test软件单元测试_实例讲解(局部静态变量的处理)
  • node入门:安装和npm使用
  • 如何创建和使用汇编语言,以及下载编译汇编软件(Notepad++,NASM的安装)
  • 小米玄戒O1架构深度解析(一):十核异构设计与缓存层次详解
  • 《软件工程》第 12 章 - 软件测试
  • 【QT】QString和QStringList去掉空格的方法总结
  • PyTorch入门教程:下载、安装、配置、参数简介、DataLoader(数据迭代器)参数解析与用法合集
  • 图片文件未正确加载​—— Webpack 无法正确解析图片,生成了一个空的 Base64 URL
  • 行业网站的特点/小学生摘抄新闻2024
  • 中小网站建设都有哪些方案/深圳seo优化排名优化
  • 网站更改关键词/如何做一个自己的网页
  • 建行商城网站/百度云搜索引擎入口 百度网盘
  • 怎么把个人做的网站上传到网上/重庆网络推广
  • wordpress旧版本哪个好些/seo免费培训