结合简聊的报警通知函数

浏览:1078 发布日期:2015/08/05 分类:功能实现 关键字: 报警 通知
当系统出现问题,或者想要报警或是通知的时候,可以通过该函数,向简聊的自定义hook发出请求,然后就可以在手机上面接收到报警。

当系统出现问题,或者想要报警或是通知的时候,可以通过该函数,向简聊的自定义hook发出请求,然后就可以在手机上面接收到报警。


简聊地址:https://jianliao.com
注册登录后,可以看到一个聚合服务 ,在里面找到自定义,Incoming Webhook,然后把里面的key替换到代码中的位置即可。


thinkphp的实现函数,可以放在common/function.php里面,也可以随意,或者封装成class。/**
 * 监控上报
 * @param  [type]  $title       [标题]
 * @param  [type]  $text        [详细内容]
 * @param  string  $redirectUrl [跳转地址]
 * @param  string  $imageUrl    [图片地址]
 * @param  integer $time        [过期时间,就是当积累的上报数据达到指定时间后,再发送报警,比如超过10分钟发送一次]
 * @param  boolean $now         [是否立即发送]
 * @return [type]               [发送完成的true 或是false]
 */
function gtReport($title, $text, $redirectUrl = '', $imageUrl = '', $time = 600,$now = false) {
    $content = S('report_' . $title);
    if (empty($content)) {
        //如果为首次报错,则记录首次过期时间
        S('report_' . $title . '_expire', time());
    }
    $expire = S('report_' . $title . '_expire');

    if (empty($content) || ($expire + $time) > time() || $now == false) {
        //如果数量为空,或是首次过期时间没有超过10分钟,则进行累加
        S('report_' . $title, $content . "\n" . $text . "[" . date('Y-m-d H:i:s') . "]");
        return false;
    }
    S('report_' . $title, 0);

    $data['authorName'] = '我的数据上报';
    $data['title'] = $title;
    $data['text'] = $content;
    $data['redirectUrl'] = $redirectUrl;
    $data['imageUrl'] = $imageUrl;

    $query = array();
    foreach ($data as $key => $value) {
        if ($value === '') {
            continue;
        }
        $query[] = $key . '=' . $value;
    }
    $query = implode('&', $query);
    $url = 'https://talk.ai/v1/services/webhook/来自简报的key';

    $ch = curl_init();
    curl_setopt($ch, CURLOPT_URL, $url);
    curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false);
    curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, false);
    curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
    curl_setopt($ch, CURLOPT_POST, true);
    curl_setopt($ch, CURLOPT_POSTFIELDS, $query);

    $result = curl_exec($ch);
    \Think\Log::write("错误上报\t" . $query, 'WARN');
    return true;
}
收到通知的效果如下:
评论( 相关
后面还有条评论,点击查看>>