Ruby接入预警通知API:简单调用方式

Ruby程序里怎么发预警通知 Rails后台任务、定时脚本常用来跑巡检:订单超时未支付、库存低于阈值、备份失败、证书临期。互亿无线预警通知API是HTTPS POST,Ruby标准库Net::HTTP即可调用,标准HTTP请求无需引入第三方…

Ruby程序里怎么发预警通知

Rails后台任务、定时脚本常用来跑巡检:订单超时未支付、库存低于阈值、备份失败、证书临期。互亿无线预警通知API是HTTPS POST,Ruby标准库Net::HTTP即可调用,标准HTTP请求无需引入第三方依赖。本文给出简单示例。

接口与参数

短信 https://api.ihuyi.com/sms/Submit.json,语音 https://api.ihuyi.com/voice/vm,闪信 https://api.ihuyi.com/flash/Submit.json。参数account、password、mobile、content,成功返回code=2与smsid。可选templateid与time参数。

Net::HTTP示例

require "net/http"
require "uri"
require "json"

def send_sms(mobile, content)
  uri = URI("https://api.ihuyi.com/sms/Submit.json")
  res = Net::HTTP.post_form(uri, {
    "account"  => "API_ID",
    "password" => "API_KEY",
    "mobile"   => mobile,
    "content"  => content
  })
  JSON.parse(res.body)
end

r = send_sms("13800138000", "【运维告警】数据库备份失败,请值班检查。")
if r["code"] == 2
  puts "已提交 #{r["smsid"]}"
else
  puts "发送失败 #{r.inspect}"
end

封装多通道方法

  • P3:只调send_sms,低成本留档
  • P1:短信之后再POST到voice/vm,电话未接也有短信留档
  • P0:通过模板配置一次发语音同步下发闪信与短信

在Rails任务里用

  1. 在app/jobs里写一个AlertJob,调用send_sms
  2. 备份失败、库存越限时enqueue_async,不阻塞请求
  3. 把smsid写入业务日志,便于事后追溯

延迟任务与重试

Rails的ActiveJob默认异步执行,告警失败不会阻塞请求。建议在send_sms外层加一次重试:网络抖动时隔5秒再发,仍失败则记录到失败队列。P1级告警在短信之外再POST到voice/vm,电话未接也有短信留档。

备份失败这类事件常有时间窗:夜间备份失败若到早上才通知,恢复窗口已经错过。语音电话直接叫醒值班,TTS播报备份任务名与失败原因。短信提供毫秒级状态回执,30余种状态码区分送达与拦截。

典型备份场景

某Rails应用夜间数据库备份曾连续失败两天,运维直到磁盘满了才发现。接入后,备份失败立即P1双呼:短信留档任务名,语音电话叫醒值班。ActiveJob异步执行,通知失败不阻塞主流程,重试一次仍失败则进失败队列。

Rails后台任务建议把告警手机号做成配置,P0群呼值班组、P1通知当值、P3只发短信。smsid写入业务日志,与备份任务ID关联,事后可查哪次告警送达成功。语音未接自动重呼一次,振铃60秒。

短信提供毫秒级状态回执,30余种状态码区分送达与拦截。长短信按多条计费,24小时可发送。

备份失败、库存越限时enqueue_async,不阻塞请求。smsid写入业务日志便于追溯。

语音未接自动重呼一次,振铃60秒,接听时长可回传用于考核。

Rails后台任务建议把告警手机号做成配置,按级别路由。

互亿无线提供11种语言代码示例,按成功计费、失败不计费。Ruby团队若想把告警通知接进后台任务,注册免费试用,拿测试条数先跑通一条备份失败告警。

立即开始免费测试

注册即送免费测试条数,30分钟快速接入多通道预警API

免费注册,开始测试
咨询热线:400-118-6878
高新技术企业

高新技术企业

专精特新企业

专精特新企业

ISO9001认证

ISO9001 认证

安全等级认证

安全等级认证

AAA信用企业

AAA 信用企业