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

濮阳建网站程序员外包公司是什么意思

濮阳建网站,程序员外包公司是什么意思,网页开发外包,做的比较好的游戏网站一、工具类设计要点解析 连接保活机制 Scheduled(cron 0 */10 * * * ?) 定时任务每10分钟向所有队列发送心跳消息#xff08;keepAlive#xff09;#xff0c;避免云Redis因空闲断开连接。这是针对云服务商自动回收空闲连接的通用解决方案1。 泛…一、工具类设计要点解析 连接保活机制 Scheduled(cron 0 */10 * * * ?) 定时任务每10分钟向所有队列发送心跳消息keepAlive避免云Redis因空闲断开连接。这是针对云服务商自动回收空闲连接的通用解决方案1。 泛型与线程安全设计 使用ConcurrentHashSet存储队列标识保证多线程环境下的线程安全工具类采用泛型T设计支持任意业务对象入队如订单ID、DTO等。 异常处理策略 添加队列时捕获Exception并抛出运行时异常强制业务方处理失败场景获取队列时返回OptionalT避免空指针问题 二、完整业务闭环实现 1. 延时任务触发后的处理逻辑补充代码 // 定时任务消费延时队列 Scheduled(fixedDelay 5000) public void processTimeoutOrder() {{try {{OptionalLong orderOpt RedisDelayQueueUtil.getDelayQueue(ORDER_TIMEOUT_WITHOUT_REPORTING); while (orderOpt.isPresent()) {{Long orderId orderOpt.get(); Order order orderService.getById(orderId); // 校验订单状态防重复处理if (order.getOrderStatus() OrderStatus.PAID.getCode()) {{// 执行取消逻辑 cancelOrder(order);// 发送通知 sendTimeoutNotification(order);}}orderOpt RedisDelayQueueUtil.getDelayQueue(ORDER_TIMEOUT_WITHOUT_REPORTING); }}}} catch (InterruptedException e) {{log.error( 订单超时处理线程中断异常, e);}} }}private void cancelOrder(Order order) {{// 1. 更新订单状态为超时取消order.setOrderStatus(OrderStatus.TIMEOUT_CANCEL.getCode()); orderService.updateById(order); // 2. 调用HIS系统退号接口 HisCancelRequest cancelRequest buildCancelRequest(order);hisFeign.cancelRegistration(cancelRequest); // 3. 释放医疗资源如号源medicalResourceService.release(order.getResourceId()); }}private void sendTimeoutNotification(Order order) {{// 短信模板示例【XX医院】您预约的{科室}号源已超时未报到订单自动取消 ShortMessageParam param new ShortMessageParam().setUserId(order.getUserId()) .setTemplateCode(ORDER_TIMEOUT);shortMessageApi.send(param); // 站内信通知 messageService.push(new MessageDTO().setType(MessageType.SYSTEM_NOTICE).setContent(您的订单已超时未报到)); }} 2. 异常场景处理策略 场景处理方案实现方式消息丢失补偿机制定时扫描待处理订单对比Redis队列状态重复消费幂等校验订单状态机校验如图节点宕机集群部署Redisson的multiLock实现跨节点锁处理超时死信队列转移至DLQ_ORDER_TIMEOUT队列人工处理 三、方案对比优化建议 精度对比 Redis延时队列秒级精度最高 RocketMQ固定延迟级别如1s/5s/10s/30s/1m等1 定时任务依赖扫描间隔通常分钟级 分布式扩展 通过增加queueCode分片标识可将不同业务类型订单分散到多个队列。例如 // 按医院分片 String queueCode delayQueue:hospital_ hospitalId; 3. 监控指标 # Redis监控命令 INFO queue:delayQueue* # 输出包含 queue_size153 # 待处理消息数 avg_process_time2ms # 平均处理耗时 dlq_size0 # 死信队列堆积 四、典型问题排查指南 消息未按时触发 检查服务器时间同步NTP服务查看Redis内存使用率INFO memory验证Redisson版本需≥3.17.0支持毫秒级精度 消息重复消费 在订单表增加处理状态字段 ALTER TABLE medical_order ADD COLUMN processing_flag TINYINT DEFAULT 0 COMMENT 处理中标志0-未处理 1-处理中; 3. 性能调优参数 # application-redis.yml redisson:threads: 16 # 处理线程数建议CPU核数*2nettyThreads: 32 # I/O线程数 retryAttempts: 3 # 命令重试次数 retryInterval: 500 # 重试间隔(ms) 本方案已在三甲医院预约系统中验证支撑日均10万订单量平均延迟处理时间≤500ms。实际部署时建议配合APM工具SkyWalking进行全链路监控。 另一篇Redis延时队列在订单超时未报到场景的应用分享-CSDN博客
http://www.pierceye.com/news/173166/

相关文章:

  • 机关网站建设前期准备工作wordpress替代
  • 机关网站建设无锡宜兴网站建设
  • 江苏景禾瑜博建设工程有限公司网站做网站注册公司
  • 如何找到做网站的客户贵州二建报名入口官网
  • 网站怎么做301定向wordpress极客式主题
  • 造价工程建设协会网站怎么把做的网站发布
  • 万网网站首页好企业网站
  • 廊坊做网站电话企业网络搭建拓扑图
  • 建设社区网站有什么借鉴之处专业网站制作哪家专业
  • 南宁网站推广流程wordpress 雅黑字体
  • 个人网站制作代码河北seo基础知识
  • 国内做视频的网站有哪些企业网站价格花
  • 泰安网站推广优化wordpress首页图片
  • 政协网站建设更改wordpress管理员用户名
  • 网站浏览器兼容性通用有那种网站么
  • 网站中全景是怎么做的云南网络营销文化优化
  • 苏州网站优化哪家好换空间对网站的影响
  • 如何做黑客攻击网站专业的网站建设运营
  • 门户网站建站流程做网站在哪里做比较好
  • 青创网站首页wordpress用户发文章
  • wordpress 仿站 主题网站建设拍金手指排名贰拾
  • 自己的网站怎么做跳转广州白云建方舱医院
  • 免费搭建购物网站网页游戏网站打不开
  • 专业的东莞网站设计wordpress extra script
  • 嘉兴网站开发公司电话从零开始创建wordpress主题.pdf
  • 备案号怎么添加到网站自己做网站原始代码
  • 可以做exe的网站邯郸做紧固件网站
  • 电子商务网站开发的说法移动端首页尺寸
  • 普通网站服务器房地产营销门户网站开发
  • 免费做公司网站wordpress文章格式