#!/bin/bash 2 3# 配置 4SERVICE_NAME="MyApp" 5URL="http://localhost:8080/health" 6MAX_RETRIES=2 7TIMEOUT=5 8LOG_FILE="/var/log/${SERVICE_NAME}_health.log" 9 10# 日志函数 11log() { 12 echo "$(date '+%Y-%m-%d %H:%M:%S') - $1" >> "$LOG_FILE" 13} 14 15# 健康检查函数 16check_service() { 17 if command -v curl >/dev/null; then 18 curl -sf --max-time "$TIMEOUT" "$URL" > /dev/null 2>&1 19 return $? 20 elif command -v wget >/dev/null; then 21 wget --quiet --timeout="$TIMEOUT" --spider "$URL" > /dev/null 2>&1 22 return $? 23 else 24 log "ERROR: Neither curl nor wget available!" 25 return 1 26 fi 27} 28 29# 主逻辑:带重试 30for ((i=0; i<=MAX_RETRIES; i++)); do 31 if check_service; then 32 log "SUCCESS: $SERVICE_NAME is healthy" 33 exit 0 34 else 35 if [ $i -lt $MAX_RETRIES ]; then 36 log "WARNING: $SERVICE_NAME check failed, retrying in 2s... (attempt $((i+1)))" 37 sleep 2 38 fi 39 fi 40done 41 42# 最终失败 43log "CRITICAL: $SERVICE_NAME is DOWN after $((MAX_RETRIES+1)) attempts" 44exit 1Shell 服务健康检查脚本
张小明
前端开发工程师
用html5写一个国际象棋
<!DOCTYPE html> <html lang"zh-CN"> <head> <meta charset"UTF-8"> <meta name"viewport" content"widthdevice-width, initial-scale1.0"> <title>国际象棋大师 | 在线对弈平台<…
【架构师亲授】:Docker MCP 网关服务注册的7大最佳实践
第一章:Docker MCP 网关服务注册的核心概念在微服务架构中,Docker MCP(Microservice Communication Protocol)网关承担着服务发现、路由转发与负载均衡的关键职责。服务注册是其实现动态拓扑管理的基础机制,指容器化服…
为什么你的工作流总失败?Dify错误重试配置的8个必检项
第一章:Dify工作流错误重试机制的核心原理Dify 工作流引擎在处理复杂任务编排时,面对网络抖动、服务临时不可用等常见故障,内置了弹性强的错误重试机制。该机制基于指数退避算法与最大重试次数限制,确保任务在短暂异常后具备自愈能…
【量子计算镜像构建缓存全解析】:掌握高效量子环境部署的5大核心技术
第一章:量子计算镜像的构建缓存 在量子计算模拟环境中,构建高效的镜像缓存机制是提升系统性能的关键环节。通过本地缓存预计算的量子态叠加结果与门操作映射,可显著减少重复计算开销,尤其适用于高频调用的量子线路仿真任务。 缓存…
直播中控效率瓶颈突破:从重复操作到节奏掌控
在直播带货的运营链路中,中控岗位是衔接商品展示与用户转化的核心节点,而中控工具的选择直接决定了直播间的节奏流畅度。不少从业者都曾遭遇过巨量百应弹窗机制带来的效率困境 ——8 秒弹窗时效限制、多品过款手动切换、主播移动讲解时的操作断档&#x…
编码器伺服电机例程代码原理图PMSM stm32 foc bldc学习资料
编码器伺服电机例程代码原理图PMSM stm32 foc bldc学习资料 内容:6个电机控制源码例程及程序说明,BLDC原理图(pdf版,无PCB,使用STM32F103R8T6作为主控),电机控制相关参考资料。 电机控制相关参考…