MobPush创建推送

news2024/11/20 18:48:18

功能说明

  • MobPush提供遵循REST规范的HTTP接口,适用各开发语言环境调用。

IP绑定

工作台可以绑定服务器IP地址,未绑定之前所有IP均可进行REST API的调用,绑定后进仅绑定的IP才有调用权限。

调用地址

  • POSThttp://api.push.mob.com/v3/push/createPush

请求头

字段名类型选项含义
Content-Typestring必填必要参数,固定值application/json
keystring必填MobTech提供的AppKey
signstring必填加密参数,加密规则为: md5(请求参数+MobAppSecret)

推送对象

  • 以 JSON 格式表达,表示一条推送相关的所有信息。
字段名类型选项含义
worknostring可选自定义任务id,默认由MobTech自动生成,无需传递(需保证唯一性)
sourcestring必填固定值webapi
appkeystring必填MobTech提供的AppKey
pushTargetobject必填推送目标
pushNotifyobject必填推送展示细节配置
pushOperatorobject可选运营保障相关配置
pushForwardobject可选link 相关打开配置
pushCallbackobject可选推送回调配置
pushFactoryExtraobject可选厂商特殊配置
userExtraobject可选用于给客户提供一些用于解释推送任务的字段扩充
groupIdstring可选AB分组测试ID

pushTarget:推送目标

字段名类型选项含义
targetnumber必填推送目标类型

- 1:广播

- 2:别名(alias)

- 3:标签(tags)

- 4:rid

- 5:地理位置(city)

- 6:用户分群

- 9:复杂地理位置推送(pushAreas)

- 14:fileid推送
aliasstring []target等于2时必填推送别名集合,集合元素限制1000个以内。

例:["alias1","alias2"]
tagsstring []target等于3时必填推送标签集合,集合元素限制1000个以内

例:["tag1","tag2"]
tagsTypenumbertarget等于3时必填标签组合方式,target等于3时可用

- 1:并集

- 2:交集

- 3:补集(暂未实现)
ridsstring[]target等于4时必填推送rid集合,集合元素限制1000个以内

例:["id1","id2"]
citystringtarget等于5时可选,且city、province、country 必选一个不为空推送地理位置的城市

例:上海市
provincestringtarget等于5时可选,且city、province、country 必选一个不为空推送地理位置的省份

例:浙江省
countrystringtarget等于5时可选,且city、province、country 必选一个不为空推送地理位置的国家

例:中国
blockstringtarget等于6时必填用户分群ID

注:该功能暂未实现
pushAreasobjecttarget等于9时必填复杂地理位置
fileIdstringtarget等于14时必填fileid
appPackagesstring []可选指定推送的包名列表,如不填则使用默认包名进行推送

pushAreas:复杂地理位置

字段名类型选项含义
countriesobject []必填国家列表

countries:国家列表

字段名类型选项含义
countrystring必填国家名称
provincesobject []可选指定需要推送的省份列表

provinces:省份列表

字段名类型选项含义
provincestring必填省份名称
citiesstring []可选需要推送的城市列表
excludeCitiesstring []可选指定不需要推送的城市列表,当指定[cities]时,这个字段不起作用
excludeProvincesstring []可选指定不需要推送的省份列表,当设置[provinces]时,这个不起作用

pushNotify:推送展示细节配置

字段名类型选项含义
platsnumber []必填推送生效渠道

- 1:android

- 2:iOS

例:[1, 2]
iosProductionnumberplats数组值含有2时可选iOS环境

- 0:测试环境

- 1:生产环境(默认)
offlineSecondsnumber可选离线消息保存时间,单位:秒,默认值为86400

注:魅族厂商的离线保留时间范围是1~72小时,设置的离线保留时间如超出该范围将会导致消息无法使用魅族厂商通道,其他厂商不受影响
contentstring必填推送内容

注1:内容长度超过厂商限制会被截断。

注2:vivo不支持纯表情。
titlestring可选通知标题

注1:默认通知标题为应用名称

注2:标题长度超过厂商限制会被截断

注3:vivo不允许纯表情
typenumber必填推送类型

- 1:通知

- 2:自定义
androidNotifyobject可选Android通知消息对象
iosNotifyobject可选iOS通知消息对象
taskCronnumber可选是否是定时消息

- 0:否(默认)

- 1:是
taskTimenumbertaskCron=1时必填定时消息发送时间,单位:毫秒时间戳

例:1594277916000
speednumber可选每秒推送速率的趋势,默认为0(代表不开启)
skipOnlinenumber可选是否跳过在线设备

- 1:跳过

- 0:不跳过(默认)
skipFactorynumber可选是否跳过厂商通道

- 1:跳过

- 0:不跳过(默认)
policynumber可选推送策略

- 1:先走tcp,再走厂商

- 2:先走厂商,再走tcp

- 3:只走厂商

- 4:只走tcp

注:厂商透传只支持策略3或4
extrasMapListobject []可选附加参数列表

例: [ { "key": "name", "value": "jason" }, { "key": "age", "value": 18 } ]

androidNotify:Android通知消息对象

字段名类型选项含义
contentstring []可选推送内容,配合style参数使用

- style=0 不生效

- style=1 部分机型可以生效覆盖

- style=2 传入图片链接,部分低版本手机不支持

- style=3 对应传入文字内容默认: 0
customStyleobject可选自定义样式
warnstring可选提醒类型,可多选组合

- 1:提示音

- 2:震动

- 3:指示灯 例:12(提示音+震动)
styleinteger可选显示样式标识- 0:默认

- 1:长内容

- 2:大图

- 3:横幅

- 4:自定义样式
soundstring可选自定义声音
iconstring可选附带小图标的推送

注1:icon和image只能二选一,同时传输则取icon中的数据

注2:目前客户端版本暂不支持
imagestring可选推送大图标的url地址

注1:icon和image只能二选一,同时传输则取icon中的数据

注2:透传消息不支持

注3:小米厂商对图片尺寸有严格要求,不符合要求则不会按照大图样式进行推送,具体要求为:宽高固定为876*324px,格式需为PNG/JPG/JPEG,大小小于1M

注4:OPPO厂商大图需要申请权限,否则会报错导致客户端收不到推送消息
androidChannelIdstring可选安卓通知渠道ID

注:当输入该参数后,MobPush通道和厂商通道都会使用该channelId;当androidChannelId 和 pushFactoryExtra中的channelId同时使用填写时,那MobPush通道使用androidChannelId,厂商通道使用pushFactoryExtra中设置的channelId
androidBadgeTypenumber可选角标类型

- 1:角标数值取androidBadge值

- 2:角标数值为androidBadge当前值加1

注:透传消息不支持
androidBadgenumber可选角标数值

customStyle:安卓通知自定义样式

字段名类型选项含义
styleNointeger可选样式序号

- 1:样式1

- 2:样式2

- 3:样式3
backgroundUrlstring可选背景图Url
smallIconsstring可选小图标
buttonCopystring可选按钮文案
buttonJumpUrlstring可选点击按钮跳转的链接

iosNotify:iOS通知消息对象

字段名类型选项含义
badgenumber可选角标
badgeTypenumber可选badge类型

- 1:绝对值 不能为负数

- 2增减(正数增加,负数减少),减到0以下会设置为0
categorystring可选APNs的category字段,只有IOS8及以上系统才支持此参数推送
soundstring可选APNs通知,通过这个字段指定声音,默认为default(系统默认声音),如设置为空值则为静音。如设置为其他字符,则需要您的应用中配置了该声音才可以正常发声。
subtitlestring可选副标题
slientPushnumber可选如果只携带content-available: 1,不携带任何badge,sound 和消息内容等参数, 则可以不打扰用户的情况下进行内容更新等操作即为“Silent Remote Notifications”
contentAvailablenumber可选将该键设为 1 则表示有新的可用内容。带上这个键值,意味着你的 App 在后台启动了或恢复运行了,application:didReceiveRemoteNotification:fetchCompletionHandler:被调用了
mutableContentnumber可选- 1 使用富文本

- 0 不设置

注:默认为0,配合attachmentType 和attachment使用
attachmentTypenumber可选富文本类型

- 0:无

- 1:图片

- 2:视频

- 3:音频
attachmentstring可选ios富文本内容

pushOperator:运营保障相关配置

字段名类型选项含义
dropTypenumber可选运营保障消息修改类型,推荐使用专用接口进行操作

- 1:取消

- 2:替换

- 3:撤回
dropIdstring必填推送任务的唯一ID
字段名类型选项含义
urlstring可选link跳转 moblink功能的的uri
schemestring必填scheme moblink功能的的scheme
schemeDataListobject []可选scheme参数

例: [ { "key": "name", "value": "jason" }, { "key": "age", "value": 18 } ]
nextTypeinteger可选后续动作

- 0:打开首页

- 1:link跳转

- 2:scheme 跳转

- 3:Intent
intentUrlstring可选Intent页面地址

pushCallback:推送回调配置

字段名类型选项含义
urlstring可选回调地址点击查看详情
paramsobject可选JSON对象自定义参数

例: { "key": "value" }

pushFactoryExtra:厂商特殊配置

huaweiExtra:华为厂商特殊配置

字段名类型选项含义
importancestring可选消息类型

- LOW:资讯营销类

- NORMAL:服务与通讯类

注:资讯营销类的消息提醒方式为静默通知,仅在下拉通知栏展示。 服务与通讯类的消息提醒方式为锁屏+铃声+震动
categorystring可选作用一:完成自分类权益申请后,用于标识消息类型,确定消息提醒方式,对特定类型消息加快发送,取值如下:

IM:即时聊天

VOIP:音视频通话

SUBSCRIPTION:订阅

TRAVEL:出行

HEALTH:健康

WORK:工作事项提醒

ACCOUNT:帐号动态

EXPRESS:订单&物流

FINANCE:财务

DEVICE_REMINDER:设备提醒

SYSTEM_REMINDER:系统提示

MAIL:邮件

PLAY_VOICE:语音播报(仅透传消息支持)

MARKETING:内容推荐、新闻、财经动态、生活资讯、社交动态、调研、产品促销、功能推荐、运营活动(仅对内容进行标识,不会加快消息发送)
作用二:申请特殊权限后,用于标识高优先级透传场景,取值如下:

VOIP:音视频通话

PLAY_VOICE:语音播报

xiaomiExtra:小米厂商特殊配置

字段名类型选项含义
channelIdstring可选小米渠道Id 适配定制化渠道

oppoExtra:OPPO厂商特殊配置

字段名类型选项含义
channelIdstring可选OPPO渠道Id 适配定制化渠道

vivoExtra:VIVO厂商特殊配置

字段名类型选项含义
classificationint可选VIVO消息类型

- 0:运营类型消息

- 1:系统类型消息
categorystring可选二级分类,传值参见二级分类标准中category说明

1、填写category后,可以不填写classification、messageSort,但若填写classification、messageSort,请保证category与messageSort或classification是正确对应关系,否则返回错误码10097;

2、赋值请按照消息分类规则填写,且必须大写;若传入错误无效的值,否则返回错误码10096;

userExtra:用户补充信息

字段名类型选项含义
pushWorkDescstring可选推送任务的解释说明,由用户设置
activityTaskinteger可选活动任务

- 0:不是活动任务(默认)

- 1:是活动任务
activityWorkIdstringactivityTask为1时必传活动ID,不能超过20个字符,且唯一不可重复

加密示例

  • 参数
{"source":"webapi","appkey":"2f2d7a68f8a40","pushTarget":{"target":1},"pushNotify":{"plats":[1],"content":"推送的内容","type":1}}9abee316611dd24f607feb9f2c496338
  • 计算结果
sign -> eb276f35cf6480169b2d3e2e509db680

请求示例

curl --location --request POST 'http://api.push.mob.com/v3/push/createPush' \
--header 'Content-Type: application/json' \
--header 'key: 2f2d7a68f8a40' \
--header 'sign: eb276f35cf6480169b2d3e2e509db680' \
--data-raw '{"source":"webapi","appkey":"2f2d7a68f8a40","pushTarget":{"target":1},"pushNotify":{"plats":[1],"content":"推送的内容","type":1}}'

响应示例

  • 请求成功
{
    "status": 200,
    "res": {
        "batchId": "4bp4tw9ttc06xgch6o",
        "fetched": null,
        "uninstalls": null,
        "closes": null,
        "notFounds": null
    },
    "error": null
}
  • 请求失败
{
    "status": 5801,
    "res": null,
    "error": "数据校验失败"
}
  • 响应参数
keydescription
status返回码
res消息体,可从中获取本次推送的任务ID
error返回码描述

调用示例

推送广播

{
    "appkey": "moba6b6c6d6",
    "pushTarget": {
        "target": 1
    },
    "pushNotify": {
        "plats": [
            1
        ],
        "content": "推送的内容",
        "type": 1
    }
}

推送广播并附加参数

{
    "appkey": "moba6b6c6d6",
    "pushTarget": {
        "target": 1
    },
    "pushNotify": {
        "plats": [
            1,
            2
        ],
        "content": "推送的内容",
        "type": 1,
        "iosProduction": 0,
        "extrasMapList": [
            {
                "key": "ContentTypeasd",
                "value": "personal_chat"
            }
        ]
    }
}

推送标签

{
    "source": "webapi",
    "appkey": "moba6b6c6d6",
    "pushTarget": {
        "target": 3,
        "tags": [
            "男",
            "上海",
            "老师"
        ]
    },
    "pushNotify": {
        "plats": [
            1
        ],
        "content": "推送的内容",
        "type": 1
    }
}

推送别名

{
    "source": "webapi",
    "appkey": "moba6b6c6d6",
    "pushTarget": {
        "target": 2,
        "alias": [
            "alias_1",
            "alias_2"
        ]
    },
    "pushNotify": {
        "plats": [
            1
        ],
        "content": "推送的内容",
        "type": 1
    }
}

推送RegisterID

{
    "source": "webapi",
    "appkey": "moba6b6c6d6",
    "pushTarget": {
        "target": 4,
        "rids": [
            "c262bac10d05ec1c9b04126d"
        ]
    },
    "pushNotify": {
        "plats": [
            1
        ],
        "content": "推送的内容",
        "type": 1
    }
}

自定义消息(透传消息)

{
    "source": "webapi",
    "appkey": "moba6b6c6d6",
    "pushTarget": {
        "target": 1
    },
    "pushNotify": {
        "plats": [
            1
        ],
        "content": "推送内容",
        "type": 2,
        "customNotify": {
            "customType": "text 文本消息",
            "customTitle": "自定义类型标题"
        }
    }
}

Android通知大图模式

{
    "source": "webapi",
    "appkey": "moba6b6c6d6",
    "pushTarget": {
        "target": 1
    },
    "pushNotify": {
        "plats": [
            1
        ],
        "content": "推送内容",
        "type": 1,
        "androidNotify": {
            "content": [
                "Android推送内容1",
                "Android推送内容2"
            ],
            "style": 2
        }
    }
}

Android通知横幅模式

{
    "source": "webapi",
    "appkey": "moba6b6c6d6",
    "pushTarget": {
        "target": 1
    },
    "pushNotify": {
        "plats": [
            1
        ],
        "content": "推送内容",
        "type": 1,
        "androidNotify": {
            "content": [
                "Android推送内容1",
                "Android推送内容2"
            ],
            "style": 3
        }
    }
}

Android通知自定义声音

音频文件放到项目res/raw目录下,只需传音频文件的文件名

{
    "source": "webapi",
    "appkey": "moba6b6c6d6",
    "pushTarget": {
        "target": 1
    },
    "pushNotify": {
        "plats": [
            1
        ],
        "content": "推送内容",
        "type": 1,
        "androidNotify": {
            "content": [
                "Android推送内容1",
                "Android推送内容2"
            ],
            "style": 2,
            "warn": "1",
            "sound": "warn"
        }
    }
}

跳转首页并传递附加参数

{
    "source": "webapi",
    "appkey": "moba6b6c6d6",
    "pushTarget": {
        "target": 1
    },
    "pushNotify": {
        "plats": [
            1
        ],
        "content": "推送内容",
        "type": 1,
        "androidNotify": {
            "content": [
                "Android推送内容1",
                "Android推送内容2"
            ],
            "style": 2,
            "warn": "1",
            "sound": "warn"
        },
        "extrasMapList": [
            {
                "key": "extrakey",
                "value": "extravalue"
            }
        ]
    },
    "pushForward": {
        "nextType": 0
    }
}

跳转到指定界面并且传递携带scheme数据

{
    "source": "webapi",
    "appkey": "moba6b6c6d6",
    "pushTarget": {
        "target": 1
    },
    "pushNotify": {
        "plats": [
            1
        ],
        "content": "推送内容",
        "type": 1,
        "androidNotify": {
            "content": [
                "Android推送内容1",
                "Android推送内容2"
            ],
            "style": 2,
            "warn": "1",
            "sound": "warn"
        }
    },
    "pushForward": {
        "nextType": 2,
        "scheme": "mlink://com.mob.mobpush.linkone",
        "schemeDataList": [
            {
                "key": "schemekey",
                "value": "schemevalue"
            }
        ]
    }
}

打开网页

{
    "source": "webapi",
    "appkey": "moba6b6c6d6",
    "pushTarget": {
        "target": 1
    },
    "pushNotify": {
        "plats": [
            1
        ],
        "content": "推送内容",
        "type": 1,
        "androidNotify": {
            "content": [
                "Android推送内容1",
                "Android推送内容2"
            ],
            "style": 2,
            "warn": "1",
            "sound": "warn"
        }
    },
    "pushForward": {
        "nextType": 1,
        "url": "http://www.mob.com"
    }
}

频率限制

API频率控制

每个AppKey在每分钟的访问请求次数有如下限制:

  1. 推送接口的接口频率限制,默认500次/分钟;
  2. 查询接口的接口频率限制,默认300次/分钟;

注:如有更高需求,可联系商务或技术支持调整相关接口频率限制。

消息推送条数限制

单推(Rid推送或者别名推送):没有限制; 群体推送(智能标签推送):没有限制; 全部人群(广播):100次/天,每分钟1次; 注:如有更高需求,可联系商务或技术支持调整相关接口频率限制。

批量推送

MobPush还额外提供了批量推送接口,可以设置推送不同的regid和别名对应不同的推送内容,详情点击查看

返回码

返回码描述
200"成功"
4001"请求缺少必要参数"
4002"请求参数错误"
4003"请求参数不完整"
4004"数据解密失败"
4005"数据校验失败"
4006"通信会话已经过期或者不存在"
4007"非法请求"
4008"秘钥失效"
4009"文本
4010"文本
4011"加密接口只支持POST"
4012"解密失败"
4013"web请求异常"
4014"手机号码格式错误"
4015"不可保存相同短信模板"
4016"此短信模板不存在"
4017"此appkey无短信模板"
4018"此appkey无短信签名"
4019"此appkey下已有签名"
4101"appkey已经加入黑名单"
4102"该设备已经加入黑名单"
4103"请求过于频繁"
4104"请先加入MobPush产品"
4105"设备Id相关参数错误"
4201"没有可用的tcp节点"
4301"IOS设备缺少device token信息"
4302"未找到对应设备信息"
4303"别名字数超过限制,最长40,UTF-8编码"
4304"别名格式不正确"
4305"单个标签长度超过限制,最长40,UTF-8编码"
4306"标签格式不正确"
4307"定时推送需要设置时间"
4314"请填写模拟发送内容"
4308"发送内容超过限制"
4309"缺少AES KEY信息"
4310"未找到应用信息"
4311"应用已经被禁用"
4312"appkey无效"
4313"缺少token信息"
4314"请求过于频繁"
4315"大段文本内容超过限制"
4316"收件箱内容超过限制"
4317"收件箱条数超过限制"
4318"未找到要替换的消息"
4319"未找到要撤回的消息"
4320"请求缺少必要参数"
4320"回执消息为空"
4321"TCP标志消息为空"
4322"离线回执消息为空"
4501"设置IP地址格式不正确"
4502"设置的包名不正确"
4503"证书密码格式不正确"
4504"选择的鉴权方式和提交信息不匹配"
4505"填写的鉴权信息已经存在"
4506"未筛选到发送对象"
4507"当前推送任务不能修改"
4508"未找到匹配的推送任务"
4509"发送内容超过限制"
4510"只能设置一分钟后的定时任务"
4511"大段文本内容超过限制"
4512"收件箱内容超过限制"
4513"收件箱条数超过限制"
4514"标题设置超过限制"
4515"只能设置一个月内的定时任务"
4516"分群名称不能超过32字符"
4516"缺少用户分群ID"
4517"分群设置日期格式错误"
4518"任务不属于当前用户"
4518"厂商配置信息缺失"
4519"厂商选择错误,请确定厂商参数信息"
4520"请先进入 推送设置配置android包名"
4521"测试比例超过范围"
4522"未开通智能标签权限"
4523"批量别名最大数量超过1000"
4524"批量RegistrationIds最大数量超过1000"
4525"标签不能为空"
4525"批量标签最大数量超过100"
4525"标签组合限制值{1
4526"智能标签不能为空"
4527"别名不能为空且长度限制[1
4528"RegisterIds不能为空且长度限制[1
4529"分群id不能为空"
4531"推送内容不能为空"
4532"定时任务时间限制"
4533"安卓样式内容不能为空"
4540"定时任务时间不能为空"
4541"地理位置推送,地理位置信息未设置"
4543"短信补量数据不能为空"
4544"智能标签异常"
4551"短信补量别名不能为空且长度限制[1
4552"短信补量标签不能为空"
4552"短信补量RegisterIds不能为空且长度限制[1
4553"角标设置错误"
4554"FCM配置异常"
4555"替换或者撤回需要传递workId"
4556"ADPush模板为空"
4557"WebApi未开放智能标签推送"
4558"FCM远程锁异常"
4559"运营保障推送任务不存在"
4560"ABTest任务不存在"
4561"未知的短信签名"
4562"未知的短信模板"
4563"短信模板和前面不匹配"
5001"服务端未知异常"
5002"数据获取失败"
5003"数据存储失败"
5004"服务端繁忙"
5005"请求的服务不支持"
5006"数据加密失败"
5101"设备存储参数错误"
5301"没有可分配连接节点"
5302"包含无效的MessageId
5403"设备已经被禁用"
5404"缺少设备绑定信息"
5405"标签数量超限
5406"初始化信息失败"
5408"workno已经存在"
5409"无推送目标设备"
5411"设备数量不足"
5412"AppSecret秘钥错误"
5488"非法操作"
5499"数据更新失败"
5501"服务器压力大"
4800"请求头信息缺少key字段"
4801"请求IP不匹配或者未设置"
4802"应用未开启MobPush产品或者被禁用"
4803"别名字数超过限制,最长40,UTF-8编码"
4804"别名格式不正确"
4805"单个标签长度超过限制,最长40,UTF-8编码"
4806"标签格式不正确"
4807"当前推送任务不能修改"
4809"请求缺少必要参数"
4810"请求过于频繁"
4811"推送任务内容长度超限"
4812"缺少推送内容"
4813"缺少目标平台"
4814"缺少目标人群"
4815"缺少推送类型"
4816"超过最大离线时间"
4817"大段文本内容超过限制"
4818"收件箱内容超过限制"
4819"收件箱最多5条"
4820"标题设置超过限制"
4821"缺少用户分群ID"
4822"extra的key值包含关键字"
4823"一次不能超过100条"
4824"离线时间非法"
4825"离线推送时间范围只能8:00-22:00点,推送时间为当前时间+离线时间"
4826"一次不能超过1000条"
4827"dropType字段错误"
4828"任务未找到或统计未出
4839"推送Appkey错误"
4033"回调参数url格式错误"

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/428273.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

03.vue3的计算属性

文章目录1.计算属性1.get()和set()2.computed的简写3.computed和methods对比2.相关demo1.全选和反选2.todos列表1.计算属性 模板内的表达式非常便利,但是设计它们的初衷是用于简单运算的。在模板中放入太多的逻辑会让模板过重且难以维护。所以,对于任何…

CRM系统是什么?它有什么作用?

CRM系统是什么? CRM是Customer Relationship Management(客户关系管理)的缩写,是一种通过对客户进行跟踪、分析和管理的方法,以增加企业与客户之间的互动和联系,提高企业与客户之间的互信,从而…

GoNote第一章 环境搭建

GoNote第一章 环境搭建 golang介绍 1. 语言介绍 Go 是一个开源的编程语言,它能让构造简单、可靠且高效的软件变得容易。 Go是从2007年末由Robert Griesemer, Rob Pike, Ken Thompson主持开发,后来还加入了Ian Lance Taylor, Russ Cox等人&#xff0c…

oracle远程克隆pdb

使用远程克隆的先决条件是: oracle版本是12.2以上,开启归档模式以及本地undo. 这里是想从172.16.12.250将PRODPDB1克隆到172.16.12.251下,命名为PRODPDB1COPY。 1 确保源端数据库开启归档模式 备注:进cdb里开启归档。 2 在源数据库中,确保…

2023年环境工程与生物技术国际会议(CoEEB 2023)

会议简介 Brief Introduction 2023年环境工程与生物技术国际会议(CoEEB 2023) 会议时间:2023年5月19日-21日 召开地点:瑞典马尔默 大会官网:www.coeeb.org 2023年环境工程与生物技术国际会议(CoEEB 2023)将围绕“环境工程与生物技术”的最新研…

【教程】Unity 与 Simence PLC 联动通讯

开发平台:Unity 2021 依赖DLL:S7.NET 编程语言:CSharp 6.0 以上   一、前言 Unity 涉及应用行业广泛。在工业方向有着一定方向的涉足与深入。除构建数据看板等内容,也会有模拟物理设备进行虚拟孪生的需求需要解决。而 SIMATIC&a…

测评:腾讯云轻量4核8G12M服务器CPU内存带宽流量

腾讯云轻量4核8G12M应用服务器带宽,12M公网带宽下载速度峰值可达1536KB/秒,折合1.5M/s,每月2000GB月流量,折合每天66GB,系统盘为180GB SSD盘,地域节点可选上海、广州或北京,4核8G服务器网来详细…

02-参数传递+统一响应结果

1. 参数传递: -- 简单参数 如果方法形参数名称与请求方法名称不匹配,采用RequestParam注解 -- 实体参数 -- 数组集合参数 -- 日期参数 -- JSON参数 -- 路径参数 2. 统一响应结果 -- 1. 创建Result类(放到pojo包中) package dem…

centos8 源码安装 apache(内附图片超详细)

♥️作者:小刘在C站 ♥️个人主页:小刘主页 ♥️每天分享云计算网络运维课堂笔记,努力不一定有收获,但一定会有收获加油!一起努力,共赴美好人生! ♥️夕阳下,是最美的绽放&#xff0…

Redis 如何实现库存扣减操作和防止被超卖?

本文已经收录到Github仓库,该仓库包含计算机基础、Java基础、多线程、JVM、数据库、Redis、Spring、Mybatis、SpringMVC、SpringBoot、分布式、微服务、设计模式、架构、校招社招分享等核心知识点,欢迎star~ Github地址:https://github.com/…

《Rank-LIME: Local Model-Agnostic Feature Attribution for Learning to Rank》论文精读

文章目录一、论文信息摘要二、要解决的问题现有工作存在的问题论文给出的方法(Rank-LIME)介绍贡献三、前置知识LIMEFeature AttributionModel-AgnosticLocalLearning to Rank(LTR)单文档方法(PointWise Approach&#…

工业相机标定(张正友标定法)

目录 相机标定的概念 a. 相机标定的定义 b. 相机标定的目的 相机标定的过程 a. 标定板选择 b. 标定板摆放及拍摄 c. 标定板角点提取 张正友标定法 a. 反解相机矩阵 b.反解畸变系数 使用Python进行相机标定 a. 安装OpenCV b. 准备标定板图片 c. 利用OpenCV进行角点…

HashMap、HashTable、ConcurrentHashMap 之间的区别

哈喽,大家好~我是保护小周ღ,本期为大家带来的是 HashMap、HashTable、ConcurrentHashMap 之间的区别,从数据结构到多线程安全~确定不来看看嘛~更多精彩敬请期待:保护小周ღ *★,*:.☆( ̄▽ ̄)/$:*.★* ‘一、…

内存、CPU与指针的知识

在计算机中,内存、CPU和指针是非常重要的概念。在本篇博客中,我们将探讨内存、CPU和指针的知识。 内存的概念 内存是计算机中的一种存储设备,用于存储程序和数据。内存可以被CPU读取和写入,因此是计算机中非常重要的组成部分。在…

006:Mapbox GL添加zoom和旋转控件

第006个 点击查看专栏目录 本示例的目的是介绍演示如何在vue+mapbox中添加zoom和旋转rotation控件 直接复制下面的 vue+mapbox源代码,操作2分钟即可运行实现效果 文章目录 示例效果配置方式示例源代码(共60行)相关API参考:专栏目标示例效果 配置方式 1)查看基础设置:h…

【数据结构第八章】- 排序(万字详解排序算法并用 C 语言实现)

目录 一、基本概念和排序方法概述 1.1 - 排序的基本概念 1.2 - 内部排序的分类 二、插入排序 2.1 - 直接插入排序 2.2 - 希尔排序 三、交换排序 3.1 - 冒泡排序 3.2 - 快速排序 3.2.1 - 递归算法 3.2.2 - 优化 3.2.3 - 非递归算法 四、选择排序 4.1 - 简单选择排…

关于统信UOS(Linux)系统磁盘无损扩容的方法

前言 针对某托管平台分配的4台虚拟服务器,操作系统统信UOS(Linux),数据磁盘空间已满,无损扩容的办法。 (在操作硬盘扩容前,为了安全起见,请通过磁盘快照功能备份服务器系统盘与数据盘…

Java 堆外内存

文章目录Java 堆外内存堆外内存的分配方式使用 Unsafe 类进行分配使用 ByteBuffer 进行分配堆外内存的查看方式Java 堆外内存 在 Java 虚拟机中,分配对象基本上都是在堆上进行的,然而在有些情况下,缓存的数据量非常大时,使用磁盘或…

【Python_Scrapy学习笔记(十四)】基于Scrapy框架的文件管道实现文件抓取(基于Scrapy框架实现多级页面的抓取)

基于Scrapy框架的文件管道实现文件抓取(基于Scrapy框架实现多级页面的抓取) 前言 本文中介绍 如何基于 Scrapy 框架的文件管道实现文件抓取(基于Scrapy框架实现多级页面的抓取),并以抓取 第一PPT 网站的 PPT 模板为例进行展示,同时抓取此网站数据的方式…

Docker安装Nexus搭建Maven私服及介绍

目录前言一、Nexus是什么?二、Docker安装方式1. 拉取镜像2. 创建挂载目录3. 运行4. 容器运行日志 (可选)三、用户登录四、仓库介绍五、创建代理仓库六、上传依赖(重点)七、下载依赖常见问题1、如何把新建的仓库添加到组…