告警通知增加短信接口
This commit is contained in:
parent
9173b256fa
commit
f9fa6f0c91
@ -0,0 +1,11 @@
|
||||
package com.aizuda.snailjob.common.core.alarm.attribute;
|
||||
|
||||
import lombok.Data;
|
||||
|
||||
import java.util.List;
|
||||
|
||||
@Data
|
||||
public class SmsAttribute {
|
||||
private List<String> phoneNumbers; // 接收短信的手机号列表
|
||||
}
|
||||
|
@ -0,0 +1,17 @@
|
||||
package com.aizuda.snailjob.common.core.alarm.sms;
|
||||
|
||||
import lombok.Data;
|
||||
import org.springframework.boot.context.properties.ConfigurationProperties;
|
||||
import org.springframework.context.annotation.Configuration;
|
||||
|
||||
@Configuration
|
||||
@ConfigurationProperties(prefix = "snailjob.sms")
|
||||
@Data
|
||||
public class SnailJobSmsProperties {
|
||||
private boolean enabled;
|
||||
private String accountSid;
|
||||
private String authToken;
|
||||
private String appId;
|
||||
private String smsServerUrl;
|
||||
}
|
||||
|
@ -0,0 +1,63 @@
|
||||
package com.aizuda.snailjob.common.core.alarm.strategy;
|
||||
|
||||
import com.aizuda.snailjob.common.core.alarm.AlarmContext;
|
||||
import com.aizuda.snailjob.common.core.alarm.attribute.SmsAttribute;
|
||||
import com.aizuda.snailjob.common.core.alarm.sms.SnailJobSmsProperties;
|
||||
import com.aizuda.snailjob.common.core.enums.AlarmTypeEnum;
|
||||
import com.aizuda.snailjob.common.core.util.JsonUtil;
|
||||
import com.aizuda.snailjob.common.log.SnailJobLog;
|
||||
import lombok.RequiredArgsConstructor;
|
||||
import org.springframework.stereotype.Component;
|
||||
|
||||
import java.util.List;
|
||||
|
||||
@Component
|
||||
@RequiredArgsConstructor
|
||||
public class SmsAlarm extends AbstractAlarm<AlarmContext> {
|
||||
|
||||
private final SnailJobSmsProperties snailJobSmsProperties;
|
||||
|
||||
@Override
|
||||
public Integer getAlarmType() {
|
||||
return AlarmTypeEnum.SMS.getValue(); // 返回短信类型的值
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean syncSendMessage(AlarmContext alarmContext) {
|
||||
if (!snailJobSmsProperties.isEnabled()) {
|
||||
SnailJobLog.LOCAL.warn("短信功能未启用");
|
||||
return false;
|
||||
}
|
||||
|
||||
try {
|
||||
String notifyAttribute = alarmContext.getNotifyAttribute();
|
||||
SmsAttribute smsAttribute = JsonUtil.parseObject(notifyAttribute, SmsAttribute.class);
|
||||
String message = alarmContext.getText();
|
||||
|
||||
// 示例:调用第三方短信发送API
|
||||
sendSms(smsAttribute.getPhoneNumbers(), message);
|
||||
} catch (Exception e) {
|
||||
SnailJobLog.LOCAL.error("发送短信失败:", e);
|
||||
return false;
|
||||
}
|
||||
|
||||
return true;
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean asyncSendMessage(List<AlarmContext> alarmContexts) {
|
||||
for (AlarmContext context : alarmContexts) {
|
||||
asyncSendMessage(context);
|
||||
}
|
||||
return Boolean.TRUE;
|
||||
}
|
||||
|
||||
private void sendSms(List<String> phoneNumbers, String message) {
|
||||
// 这里应使用具体的短信服务SDK或HTTP请求来发送短信
|
||||
// 示例伪代码:
|
||||
for (String phoneNumber : phoneNumbers) {
|
||||
// 实际发送逻辑
|
||||
System.out.println("发送短信至 " + phoneNumber + ": " + message);
|
||||
}
|
||||
}
|
||||
}
|
@ -37,6 +37,12 @@ public enum AlarmTypeEnum {
|
||||
* Webhook
|
||||
*/
|
||||
WEBHOOK(5),
|
||||
|
||||
/**
|
||||
* 短信
|
||||
*/
|
||||
SMS(6),
|
||||
|
||||
;
|
||||
|
||||
private final int value;
|
||||
|
@ -95,6 +95,13 @@ snail-job:
|
||||
log-storage: 7 # 日志保存时间(单位: day)
|
||||
rpc-type: grpc
|
||||
|
||||
sms:
|
||||
enabled: true
|
||||
account-sid: your_account_sid
|
||||
auth-token: your_auth_token
|
||||
app-id: your_app_id
|
||||
sms-server-url: https://api.twilio.com/2010-04-01/Accounts/{account_sid}/Messages.json
|
||||
|
||||
mail:
|
||||
enabled: true
|
||||
host: smtp.qq.com
|
||||
|
Loading…
Reference in New Issue
Block a user