• [问题求助] appcube向钉钉推送消息怎么做到这种样式
    appcube向钉钉推送消息怎么做到这种样式
  • [问题求助] Appcude的脚本有分页插件吗
    Appcude的脚本有分页插件吗
  • [问题求助] appcude怎么实现RSA加密算法
    链接,https://e-cloudstore.com/doc.html?appId=af09c25938714c26b9736f535ca20fc9#1%E3%80%81%E5%BC%95%E5%85%A5RSA%E5%8A%A0%E5%AF%86%E7%AE%97%E6%B3%95%E5%B7%A5%E5%85%B7jar%E5%8C%85%E5%88%B0%E5%BC%82%E6%9E%84%E7%B3%BB%E7%BB%9F    
  • 【求助大神】附件上传失败,日志中有“保存时报:获取token失败” 内容,怎么解决?
    我们的软件,上传附件时报“应用程序错误”,查看日志,发现有如下内容,请大神帮忙解决?|| Error || Microsoft.AspNetCore.Components.Server.Circuits.CircuitHost || Unhandled exception in circuit '"I2AOQ_KtezDqKGAyqC0LBE_eteqQcDAiLyyLuIZdm9k"'. || DevExpress.ExpressApp.UserFriendlyException: 保存失败:获取token失败   at JGSoft.MES.Plugs.MesVC.Controllers.BaseData.T_artsFileVC.UploadFile_Execute(Object sender, PopupWindowShowActionExecuteEventArgs e)   at System.Threading.Tasks.Task.<>c.<ThrowAsync>b__128_0(Object state)   at Microsoft.AspNetCore.Components.Rendering.RendererSynchronizationContext.ExecuteSynchronously(TaskCompletionSource`1 completion, SendOrPostCallback d, Object state)   at System.Threading.ExecutionContext.RunInternal(ExecutionContext executionContext, ContextCallback callback, Object state)--- End of stack trace from previous location ---   at Microsoft.AspNetCore.Components.Rendering.RendererSynchronizationContext.ExecuteBackground(WorkItem item) ||end 
  • [问题求助] appcube导入报错"用户没有权限访问回调接口。"
     {    "resCode": "NO_CALLBACK_SERVICE_PERMISSION",    "resMsg": "用户没有权限访问回调接口。"} 
  • [问题求助] appcude里面除了在sql里面加limit,有没有别的分页方法
    appcude里面除了在sql里面加limit,有没有别的分页方法
  • [问题求助] appcube里面的sql怎么计算两个时间段相减
    appcube里面的sql怎么计算两个时间段相减,跟mysql的有些许不同啊,我要2025-10-17 20:22:00减去2025-10-16 19:22:00 得到小时为单位并且保留一位小数
  • [问题求助] appcube怎么编写导入导出excel功能,并且后端进行测试
    appcube怎么编写导入导出excel功能,并且后端进行测试
  • [问题求助] 如何访问外部资源
    下载huggingface提示
  • [问题求助] appcube如何进行md5加密,麻烦提供一下代码
    appcube如何进行md5加密,麻烦提供一下代码
  • [干货汇总] 如何解决鸿蒙多端数据高频并发写入系统时成功率低的问题
    一、业务背景我们项目中收支记录、账本数据需高频并发写入系统 。此前,用户记账操作成功率低至 70%,大量用户因记账失败、体验差而流失,严重阻碍业务发展 二、原因分析 全量数据一次性提交,超出系统承载能力当用户批量录入多条记账记录(如导入账单、批量补记)时,前端未做分批处理,直接将所有数据(可能达数百条)通过单次请求提交至后端。后果:单条请求数据量过大(如 100 条记录的 JSON 体积超过 1MB),导致网络传输超时(尤其弱网环境下);后端接口可能因 “单次请求数据量超限” 直接拒绝(如网关层设置请求体大小限制),或处理时内存占用激增,触发超时熔断未适配设备性能差异,固定逻辑引发低端机崩溃不同设备(如高端旗舰机 vs 入门级手机)的 CPU、内存、网络能力差异显著,但前端采用统一的处理逻辑缺乏操作进度反馈,用户误判失败批量记账时,前端未展示实时进度(如 “已完成 30%”),用户在等待过程中因 “无响应” 误以为操作失败:可能手动刷新页面或重复提交,导致重复请求冲突(如同一笔记录被提交两次),后端因 “数据重复” 返回失败;长时间无反馈触发用户焦虑,直接关闭页面,导致未完成的操作中断三、解决思路动态分批处理:针对全量数据一次性提交超出系统承载的问题,采用 “按需拆分、动态调整” 策略进度可视化与交互反馈:针对用户因无反馈而误判失败的问题,通过 “实时感知、明确反馈” 增强操作透明度异常处理与重试机制:针对网络波动、系统异常导致的写入失败,通过 “容错兜底、自动重试” 降低失败概率四、解决方案4.1 数据分批处理(基础分批逻辑)当用户触发大量记账数据录入操作时,利用 ArkTS 的异步任务调度能力,将数据按固定批次拆分。通过迭代数据数组,每次截取指定数量(初始 20 条)的数据作为一批,调用封装的写入方法逐批处理,避免一次性加载全量数据导致内存溢出或 UI 阻塞// 写入方法async function batchWriteAccountingData(data: AccountingDataItem[]): Promise<void> { const batchSize = 20; for (let i = 0; i < data.length; i += batchSize) { const batch = data.slice(i, i + batchSize); await writeBatchData(batch); // 异步写入,避免阻塞主线程 }}// 记账明细interface AccountingDataItem { id: string; amount: number; type: 'income' | 'expense';}4.2 动态分批调整(结合设备状态)借助鸿蒙系统提供的 hidebug 模块获取设备内存占用信息,实时判断设备内存状态。定义内存阈值(需结合实际设备测试确定),动态调整每批数据量:内存充裕时增大批次(如 30 条)以加快处理;内存紧张时减小批次(如 15 条)import { hidebug } from '@ohos.hidebug';async function getDynamicBatchSize(): Promise<number> { const memoryUsage = hidebug.getNativeHeapAllocatedSize(); // 根据实际设备性能测试调整 const lowMemoryThreshold = 1024 * 1024 * 200; // 200MB const highMemoryThreshold = 1024 * 1024 * 500; // 500MB if (memoryUsage < lowMemoryThreshold) { return 30; } else if (memoryUsage > highMemoryThreshold) { return 15; } return 20;}async function dynamicBatchWrite(data: AccountingDataItem[]): Promise<void> { const batchSize = await getDynamicBatchSize(); for (let i = 0; i < data.length; i += batchSize) { const batch = data.slice(i, i + batchSize); await writeBatchData(batch); }}4.3 进度可视化与交互反馈(UI 组件集成)在记账操作页面,使用 ArkTS 的 Progress 组件实时展示写入进度。通过计算已处理数据量与总数据量的比例,动态更新进度条数值。同时,结合 Toast 或弹窗反馈关键状态(“数据写入中”“写入完成”“网络异常重试” ),增强用户对操作流程的感知@Entry@Componentstruct AccountingWritePage { @State progressValue: number = 0; @State isWriting: boolean = false; private totalDataCount: number = 0; build() { Column() { Text('记账数据写入中') .fontSize(20) .margin({ bottom: 10 }); Progress({ value: this.progressValue, total: 100 }) .width(300) .height(20) .margin({ bottom: 20 }); if (this.isWriting) { Text(`已完成 ${this.progressValue.toFixed(1)}%`) .fontSize(14) .color(Color.Grey); } else { Button('开始写入') .onClick(async () => { this.isWriting = true; const data = await fetchAccountingData(); this.totalDataCount = data.length; await this.batchWriteWithProgress(data); this.isWriting = false; // 写入完成反馈 Toast.show({ message: '记账数据写入完成!' }); }); } } .padding(20) .width('100%') .height('100%') .justifyContent(FlexAlign.Center); } private async batchWriteWithProgress(data: AccountingDataItem[]): Promise<void> { const batchSize = await getDynamicBatchSize(); const totalBatches = Math.ceil(data.length / batchSize); let processedCount = 0; for (let i = 0; i < data.length; i += batchSize) { const batch = data.slice(i, i + batchSize); await writeBatchData(batch); processedCount += batch.length; this.progressValue = (processedCount / this.totalDataCount) * 100; // 业务逻辑 await new Promise(resolve => {}); } }}4.4 异常处理与重试机制在分批写入过程中,捕获网络请求异常、系统写入失败等错误。通过设置重试次数(如 3 次),针对失败批次自动重试;若重试仍失败,记录失败数据并反馈给用户,支持手动触发重试或跳过失败项const MAX_RETRY_COUNT = 3;async function writeBatchDataWithRetry(batch: AccountingDataItem[], retryCount: number = 0): Promise<boolean> { try { await writeBatchData(batch); // 写入 return true; } catch (error) { if (retryCount < MAX_RETRY_COUNT) { // 重试 return writeBatchDataWithRetry(batch, retryCount + 1); } else { // 记录失败数据,可存入本地缓存待后续处理 saveFailedBatch(batch); console.error('写入失败,已达最大重试次数:', error); return false; } }}// 在分批写入循环中替换为带重试的方法async function dynamicBatchWrite(data: AccountingDataItem[]): Promise<void> { const batchSize = await getDynamicBatchSize(); for (let i = 0; i < data.length; i += batchSize) { const batch = data.slice(i, i + batchSize); await writeBatchDataWithRetry(batch); }}五、方案总结本方案通过以下核心技术解决性能问题:动态分批处理技术,通过结合设备状态动态调整数据分批大小,形成一套灵活、高效的动态分批处理机制,可复用至其他需批量数据处理的业务场景,优化数据写
  • [自动学习] 数据校验报错
    数据校验环节,利用现有的自动学习算法,结果报错
  • [常见FAQ] 以前能提交的代码,现在提交发生编译错误
    3月29日,下午2点30发现cpp今天提交新代码时发现编译错误,尝试用以前提交成功的压缩包提交也报错compile_error
  • [区域初赛赛题问题] 求助这个bug的含义。
    wrong answer {"error_code":"read_request_is_closed","score":"0.0000","timestamp":"21371","action":"read","role":"player","request":"631062","message":"Read action failed, request 631062 was closed at timestamp 21371, close action: abort."}
  • [区域初赛赛题问题] 写入事件判分疑问
    任务书判题过程一节,关于对象写入事件有如下描述:”若选手无法给出三块有足够空间的硬盘存放该对象,则选手程序被判0分“这里的0分,是总程序为0分的含义吗,还是该对象的处理为0分,其他对象仍可得分? 
总条数:44 到第
上滑加载中