导出中心设计

业务背景

应用业务经常需要导出数据,但是并发的导出以及不合理的导出参数常常导致应用服务的内存溢出、其他依赖应用的崩溃、导出失败;因此才有导出中心的设计

设计思想

将导出应用所需的内存转移至导出中心,将导出的条数加以限制,将导出的线程数据加以控制,将文件下载的权限进行控制

将原应用系统导出改到分页查询接口,转变为应用系统承担查询功能,不再承担导出功能,只需要开发分页查询接口或者复用查询接口

适用访问:行写数据

锁这块设计:可以通过轮询锁的方式

模板这块:可通过配置表头和属性字段,通过excel处理,将属性字段集合收集并移出该行;分页请求的数据转为map,这样就能从属性字段集合中获取所需的字段值,通过逐行写入

文件存储这块:可放到常见的对象存储中,如华为OBS存储,腾讯对象存储等等

权限方面:只能申请导出任务的人来下载文件

删除任务:对于过期的任务,可通过定时任务或者 mq的过期通知等方式来删除任务数据及对象存储中的数据

excel部分参考,核心关键在于对excel的处理部分

对于导出中心请求应用服务这块提供思路:一种通过url一种通过服务名,此部分省略,至于鉴权这块,根据实际应用处理

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/bicheng/66365.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

智能工厂的设计软件 应用场景的一个例子: 为AI聊天工具添加一个知识系统 之23 “单子”职业能力原型:PIN语言/AI操作系统/robot扮演的actor

本文提要 很重要的一点是,PIN语言的每个 “词项”(最小表达单子) 唯一地提供本项目模板的一个“ 槽”位--占位符变量。这样确定了 本项目的“祖传代码” 的脚本模板了 我前面已经为三套文 给出了 对应的三套模板的名称和用意了--”在本项目的…

Re77 读论文:LoRA: Low-Rank Adaptation of Large Language Models

诸神缄默不语-个人CSDN博文目录 诸神缄默不语的论文阅读笔记和分类 论文全名:LoRA: Low-Rank Adaptation of Large Language Models ArXiv网址:https://arxiv.org/abs/2106.09685 官方GitHub网站(包含在RoBERTa、DeBERTa、GPT-2上用Lora微调…

Vue3苦逼的学习之路

从一名测试转战到全栈是否可以自学做到,很多朋友肯定会说不可能,或就算转了也是个一般水平,我很认同,毕竟没有经过各种项目的摧残,但是还是得踏足一下这个领域。所以今天和大家分享vue3中的相关内容,大佬勿…

C++单例模式跨DLL调用问题梳理

问题案例: 假设有这样一个单例模式的代码 //test.h header class Test { public:static Test &instance() {static Test ins;return ins;}void foo(); };void testFoo();//test.cpp source #include "test.h"void Test::foo() {printf("%p\n&q…

ESP32-S3系统级芯片支持烧录的编程语言

ESP32-S3作为一款功能强大的MCU系统级芯片,支持多种编程语言的烧录和开发。以下是对ESP32-S3支持的主要编程语言的详细介绍: 一、C/C ESP-IDF框架:ESP32-S3支持使用乐鑫官方的ESP-IDF(Espressif IoT Development Framework&…

Redis 数据库源码分析

Redis 数据库源码分析 我们都知道Redis是一个 <key,value> 的键值数据库&#xff0c;其实也就是一个 Map。如果让我来实现这样一个 Map&#xff0c;我肯定是用数组&#xff0c;当一个 key 来的时候&#xff0c;首先进行 hash 运算&#xff0c;接着对数据的 length 取余&…

我的nvim的init.lua配置

nvim的配置文件路径在&#xff5e;/.config/nvim路径下&#xff1a; 一、目录如下&#xff1a; coc-settings.json文件是配置代码片段路径的文件init.lua配置文件的启动脚本lua/config.lua 全局配置文件lua/keymaps.lua 快捷键映射键文件lua/plugins.lua 插件的安装和配置文件…

权限掩码umask

1 、 设置新建文件或目录的默认权限 在 Linux 系统中&#xff0c;当用户创建一个新的文件或目录时&#xff0c;系统都会为新建的文件或目录分配默认的权限&#xff0c;该默认权限与umask 值有关&#xff0c;其具体关系是&#xff1a; 新建文件的默认权限 0666-umask 值 新建…

Kubernetes Gateway API-5-后端协议和网关基础设置标签

1 后端协议 自 v1.2.0 开始支持 并非所有网关API实现都支持自动协议选择。在某些情况下&#xff0c;协议在没有明确选择加入的情况下被禁用。 当 Route 的后端引用Kubernetes Service 时&#xff0c;应用程序开发人员可以使用 ServicePort appProtocol 字段指定协议。 例如…

C++语言的网络编程

C语言的网络编程 引言 随着互联网的迅猛发展&#xff0c;网络编程已成为软件开发的重要组成部分。C作为一种高效的编程语言&#xff0c;因其出色的性能和灵活性&#xff0c;广泛应用于网络编程领域。本文将介绍C网络编程的基本概念、常用的网络库&#xff0c;以及一些具体的应…

考试座位号(PTA)C语言

每个 PAT 考生在参加考试时都会被分配两个座位号&#xff0c;一个是试机座位&#xff0c;一个是考试座位。正常情况下&#xff0c;考生在入场时先得到试机座位号码&#xff0c;入座进入试机状态后&#xff0c;系统会显示该考生的考试座位号码&#xff0c;考试时考生需要换到考试…

宝安湾区之光附近的钓鱼点

工作日的午休我经常在公司附近骑行&#xff0c;有时候也会骑行到宝安的湾区之光。但是我最感兴趣的除了湾区之光摩天轮&#xff0c;还有雷打不动的快乐钓鱼佬。 上图红框区域的河岸每天都会出现零零散散的快乐钓鱼佬&#xff0c;他们好像都有自己的钓鱼窝点。我发现来这里钓鱼也…

GNU链接器简介-3

GNU链接器简介-3 1 SECTIONS Command1.1 Output Section Description2.2 Output Section Name1.3 Output Section Address1.4 Input Section Description1.4.1 Input Section Basics1.4.2 Input Section Wildcard Patterns1.4.3 Input Section for Common Symbols1.4.4 Input S…

【练习】PAT 乙 1022 D进制的A+B

题目 输入两个非负10进制整数A和B(<2^30-1)&#xff0c;输出AB的D (1 < D < 10)进制数。 输入格式 输入在一行中依次给出3个整数A、B和D。 输出格式 输出AB的D进制数。 输入样例 123 456 8 输出样例 1103 来源&#xff1a;PAT 乙 1022 D进制的AB ——————————…

音视频-----RTSP协议 音视频编解码

流媒体协议详解&#xff1a;RTSP、RTP、RTCP、SIP、SDP、RTMP、WebRTC、WebSocket-CSDN博客 上文讲解比较清楚 多媒体编解码基础知识 一文详解WebRTC、RTSP、RTMP、SRT-腾讯云开发者社区-腾讯云 流媒体协议简介 &#xff08;整理&总结&#xff09;-CSDN博客 RTP :(Real-…

实时数仓与离线数仓的全面对比

在大数据和数据仓库的领域&#xff0c;实时数仓和离线数仓是两种常见的架构。它们分别适用于不同的业务场景&#xff0c;具有不同的技术特点、实现方式和使用场景。 下面将从底层原理、架构、技术实现、数据处理方式等多个方面对这两者进行详细对比。 1. 基本定义 实时数仓&…

家教老师预约平台小程序系统开发方案

家教老师预约平台小程序系统将连接学生/家长与家教老师&#xff0c;提供一站式的家教服务预约体验。 一、用户需求分析1、家教老师&#xff1a;希望获得更多的学生资源&#xff0c;通过平台展示自己的教学特长和经验&#xff0c;管理个人日程&#xff0c;接收并确认预约请求&a…

头歌python实验:网络安全应用实践-恶意流量检测

第1关:re 库的使用 本关任务:编写一个能正则匹配出 ip 地址的小程序。 re 的主要功能函数 常用的功能函数包括: compile、search、match、split、findall(finditer)、sub(subn)。 re.search 函数 re.search 扫描整个字符串并返回第一个成功的匹配。 函数语法: re…

第1章:Go语言入门

第1章&#xff1a;Go语言入门 1. Go语言概述 1.1 语言历史 Go语言&#xff08;Golang&#xff09;是由Google公司于2007年开始开发&#xff0c;并于2009年正式开源的编程语言。其主要创始人包括&#xff1a; Rob Pike&#xff08;Unix和Plan 9操作系统的创始人之一&#xf…

Linux 系统安装 NCBI Blast + A Quick Guide

前言 NCBI BLAST&#xff08;Basic Local Alignment Search Tool&#xff09;是由美国国家生物技术信息中心&#xff08;NCBI&#xff09;开发的一个深受生物信息学研究者青睐的基因序列比对工具。作为生物序列信息比对的行业标准&#xff0c;BLAST可用于分析核酸&#xff08;…