
在 PHP 中,遍历数组通常使用 foreach
、for
或 while
等基本方法。然而,PHP 提供了许多其他有趣和高效的方式来遍历数组。本文将介绍一些另类的遍历数组的方法,帮助你更灵活地处理数组数据。
在 PHP 中,遍历数组通常使用 foreach
、for
或 while
等基本方法。然而,PHP 提供了许多其他有趣和高效的方式来遍历数组。本文将介绍一些另类的遍历数组的方法,帮助你更灵活地处理数组数据。
在现代网络和分布式系统中,性能优化和高可用性是开发者必须面对的重要挑战。其中,“惊群”现象是一个常见的问题,尤其在高并发场景下,可能导致系统性能急剧下降或崩溃。本文将深入探讨“惊群”现象的定义、成因以及有效的解决方案。
{
"_id": ObjectId("52fc6617e97feebe05000000"),
"age": 28,
"level": NumberInt(500),
"name": "name5",
"person": [
{
"level": 5,
"score": 100,
"ccc":{"ccc3":56,"fff3":78}
},
{
"level": 7,
"score": 90,
"like": "music"
}
],
"score": NumberInt(500),
"sex": "男"
}
#!/bin/sh
# 监控日志新增内容数据
# 告警通用API
NOTICE_URL='https://oapi.dingtalk.com/robot/send?access_token=670316378281374a7150b6303cbc722f5cb9438ede6c251624c4d6057eaeafa68'
# 获取当前所在机器IP
LOCAL_IP=`/sbin/ifconfig -a|grep inet|grep -v 127.0.0.1|grep -v inet6|awk '{print $2}'|tr -d "addr:"`
# 日志文件
LOG_FILE=$1
# 判断文件是否存在
if [ ! -f $LOG_FILE ]; then
echo '文件未找到'
exit 1
fi
# 最后行数临时存储
LAST_LINE_TMP=${LOG_FILE}".line_tmp"
# 判断临时文件是否存在 不存在则初始化文件数据
if [ ! -f $LAST_LINE_TMP ]; then
echo 0 > $LAST_LINE_TMP
fi
# 获取临时行数
LAST_LINE=`cat $LAST_LINE_TMP`
# 获取当前文件行数
CUR_LINE=`cat $LOG_FILE |wc -l`
echo "Last行数 : $LAST_LINE"
echo "Current行数 : $CUR_LINE"
# MarkDown 标记
HEAD_TAG='###'
CONTENT_TAG='#####'
if [ $CUR_LINE == $LAST_LINE ]; then
echo '无异常'
else
// 计算提取行数
tail_line=$[CUR_LINE-LAST_LINE]
# 日志数据处理
content=`tail -n $tail_line $LOG_FILE |head -n 100 |xargs echo `
CONTENT_STRING=`echo $content`
# 机器报警标题描述
TITLE="机器IP : "$LOCAL_IP" ; 监控文件:"$LOG_FILE
# 测试输出
echo "------------ REQUERT START -----------------------------------------------------------------------------"
echo "curl "${NOTICE_URL}" -H 'Content-Type: application/json' -d '{\"msgtype\": \"markdown\",\"markdown\":{\"title\":\""$TITLE"\",\"text\":\""$CONTENT_STRING"\"},\"at\":{\"isAtAll\":true}}"
echo "------------ REQUERT END -----------------------------------------------------------------------------"
RESULT=`curl $NOTICE_URL -H 'Content-Type: application/json' -d "{\"msgtype\":\"markdown\",\"markdown\":{\"title\":\"$TITLE\",\"text\":\"$HEAD_TAG $TITLE \r\n$CONTENT_TAG $CONTENT_STRING\"},\"at\":{\"isAtAll\":true}}"`
# 输出响应效果
echo "Result: $RESULT"
# 更新临时行数存储
echo $CUR_LINE > $LAST_LINE_TMP
fi