首页 > 其他分享 >如何健壮地批量资源创建

如何健壮地批量资源创建

时间:2023-08-28 22:56:23浏览次数:36  
标签:健壮 批量 创建 流程 出错 数据处理 数据 资源

批量资源创建是一种典型的数据处理流程。这样的数据处理流程典型步骤是

  • 加载输入数据集
  • 遍历数据集,对每个条目,创建目标资源,目标资源可能是一种,也可能是嵌套的有层次结构的树状结构的一系列资源。

这样的处理流程,如果不做任何错误处理,整个程序处于脆弱状态。应该考虑哪些问题呢?

  • 首先需要考虑的是,输入数据的格式可能不是标准的,需要在数据集加载部分做好数据格式的标准化,各种异常数据的处理。
    • 数据校验部分:可以兼容、直接出错。
    • 格式的标准化:可以直接做一遍处理,也可以转成某种中间数据格式等待进一步处理。
  • 其次要考虑的是,创建资源的部分可能会出错。所以需要一开始就假设,创建资源的部分一定会出错。因此需要做幂等处理。
    • 每个资源创建前,检查该资源是否已创建成功过,已创建成功的,直接跳过。
    • 每个资源创建后,如果成功创建,要持久化记录状态。
    • 每个资源创建,如果失败,可以直接出错退出程序,等待诊断问题。

经过这样的流程,整个程序可以任意多次地重复跑,中间可以任意停机。整个程序符合

  • 幂等:多次执行程序,大体上是效果一致的。
  • 最终一致性:在允许出错重跑的情况下,最终数据处理流程达到目标。

标签:健壮,批量,创建,流程,出错,数据处理,数据,资源
From: https://www.cnblogs.com/math/p/batch_delete_resource.html

相关文章

  • 微信开发之一键创建微信群聊的技术实现
    创建微信群本接口为敏感接口,请查阅调用规范手册创建后,手机上不会显示该群,往该群主动发条消息手机即可显示。请求URL:http://域名地址/createChatroom请求方式:POST请求头Headers:Content-Type:application/jsonAuthorization:login接口返回参数:参数名必选类型说......
  • ImportBeanDefinitionRegistrar手动控制BeanDefinition创建注册详解
    目录一、什么是ImportBeanDefinitionRegistrar二、ImportBeanDefinitionRegistrar使用很简单registerFilters()方法三、ImportBeanDefinitionRegistrar原理一、什么是ImportBeanDefinitionRegistrarImportBeanDefinitionRegistrar接口是也是spring的扩展点之一,ImportBeanDefinition......
  • Dialog弹窗式窗口(wx.dialog)的创建以及参数的反馈
    定义一个dialog类,在设置必要的窗口属性后,可参照panel的布局方式进行排布。#自定义对话框类,新增样机信息弹窗classDetailGridDialog(wx.Dialog):def__init__(self,parent,parameter1,parameter2,parameter3):super().__init__(parent,title="详情表单",......
  • idea 2021创建java web项目
    1创建普通Java项目2添加框架2.1添加框架2.2选择webapplication2.3新建如下文件夹在WEB-INF目录下,新建classes和lib文件夹,分别用于之后存字节码文件和jar包3编辑项目结构设置相关文件保存路径3.1设置编译文件保存路径3.2设置jar包保存路径12344t......
  • MySqlBulkCopy 批量新增数据
    MySqlConnector有个MySqlBulkCopy批量新增数据方法,不过只能用DataTable,需要把list转成DataTable代码如下:MySqlBulkCopymySqlBulkCopy=newMySqlBulkCopy(conn){DestinationTableName="userinfo"};mySqlBulkCopy.ColumnMappings.AddRange(table.Columns.Cast<DataC......
  • 批量python爬虫采集性能优化之减少网络延迟的方法
    今天,我们将一起探讨批量爬虫采集的性能优化,特别关注减少网络延迟的方法。网络延迟是爬虫程序中一个常见的性能瓶颈,通过优化网络延迟,我们可以提高爬虫程序的采集速度和效率。让我们一起来看看如何实现这一目标。1.使用异步请求传统的同步请求方式会导致爬虫程序在等待服务器响应时浪......
  • dapper mysql 批量新增修改
    dapper是C#程序员比较喜欢用的轻量级ORM,简单易学,只是没有批量新增以及修改(收费版有),写了如下扩展///<summary>///dapperMySQL批量新增修改扩展///</summary>publicstaticclassDapperExtensions{///<summary>///批量插入......
  • 使用editplus批量修改文件编码
     进行J2EE开发时,经常得拿现成的前端文件,如JS、CS、JSP、html等文件。把这些文件导入到webRoot(或webContent)时经常会出现“集体乱码”的情况(如下图所示),这是因为这些文件的编码格式为ansi编码与eclipse(或myeclipse)中工作空间编码的“gbk”("utf-8")不符。使用编辑器对每个文件进......
  • 产品经理创建可实现路线图的 6 个简单步骤
     2023年的软件世界比以往任何时候都发展得更快,并充满了各种变量。而这将会以各种方式影响产品路线图的落地执行与实现。随着问题越来越多,世界需要不断发展的解决方案。因此,本文结合产品路线图当前存在的共性问题,借鉴企业的成功经验,总结了制定可实现的产品路线图的六大举措。与......
  • CMD命令如何创建计划任务,创建完成即刻运行只运行一次后删除任务
    解决方案:1.创建bat文件,任务命令如下schtasks/create/TN名称/TR运行程序路径/SC指定计划频率设为用户登入时运行schtasks/create/TNupdate/TRD:\Dir\bz2.exe/SCONLOGON12.立刻执行schtasks/run/tnupdate3.删除任务SCHTASKS/Delete/TNupdate/F4.完整关......