schedule

package
v0.1.1 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Dec 31, 2024 License: Apache-2.0 Imports: 11 Imported by: 1

Documentation

Index

Constants

This section is empty.

Variables

This section is empty.

Functions

This section is empty.

Types

type APIv3

type APIv3 interface {
	// 定时推送(创建定时任务)
	//  - 功能说明:API 层面支持定时功能。这是一个相对独立的任务执行模块,维护一个 Schedule 对象。调 API 创建的定时任务只能调 API 获取/修改/删除。
	//	- 调用地址:POST `/v3/schedules`
	//  - 接口文档:https://docs.jiguang.cn/jpush/server/push/rest_api_push_schedule#%E5%88%9B%E5%BB%BA%E5%AE%9A%E6%97%B6%E4%BB%BB%E5%8A%A1
	// 注意事项:
	//  1. 文件定时推送 API 接口频率规则和 File API v3 频率规则一样 20 次/min,且各个文件相关接口频率会互相消耗;
	//  2. 对于文件定时推送,创建定时任务成功后,若任务被执行前文件被删除,则任务执行时推送动作将会失败。
	ScheduleSend(ctx context.Context, param *SendParam) (*SendResult, error)

	// 定时模板推送(VIP) - 指定模板,指定时间,定时推送。
	//  - 功能说明:开发者可以将推送时所需参数通过极光 WebPortal 页面提前配置好,形成一套 “推送模板”,然后通过此 API 接口,指定 “模板 ID” 推送,大大降低开发难度,节省开发调试时间,节省服务器带宽成本。
	//	- 调用地址:POST `/v3/push/template/schedule`,`id` 为模板 ID(创建模板后,由极光服务器生成),`params` 为模板参数(创建模板时,开发者设置的变量参数)列表,`scheduleName` 为任务名称,`trigger` 为任务触发条件。
	//  - 接口文档:https://docs.jiguang.cn/jpush/server/push/rest_api_v3_push_template#%E6%8C%87%E5%AE%9A%E6%A8%A1%E6%9D%BF%E3%80%90%E5%AE%9A%E6%97%B6%E6%8E%A8%E9%80%81%E3%80%91
	// 注意事项:不支持多种不同 Audience 类型的组合(Tags、AndTags、NotTags 除外)!
	//  1. params 数组里面,同一个推送里面的 Audience 不允许不同类型组合(Tags、AndTags、NotTags 除外);
	//  2. params 数组里面,不同推送的 Audience 也不允许不同类型(Tags、AndTags、NotTags 除外);
	//  3. 如果是文件方式推送,一次推送只支持指定一个文件;
	//  4. 如果是地理围栏方式推送,一次推送仅支持指定一个地理围栏。
	// 也就是说:假设数组长度是 3,那么就表示有 3 个推送,这 3 个推送要么都是 Registration ID 方式推送,要么都是 Alias 方式推送。
	ScheduleTemplateSend(ctx context.Context, id string, params []TemplateParam, scheduleName string, trigger *Trigger) (*TemplateSendResult, error)

	// 获取定时推送唯一标识 (CID)
	//  - 功能说明:CID 是用于防止 API 调用端重试造成服务端的重复推送而定义的一个推送参数。用户使用一个 CID 推送后,再次使用相同的 CID 进行推送,则会直接返回第一次成功推送的结果,不会再次进行推送。
	//  CID 的有效期为 1 天,格式为:{appkey}-{uuid},在使用 CID 之前,必须通过接口获取你的 CID 池。
	//	- 调用地址:GET `/v3/push/cid?type=schedule&count={count}`,如 count < 1 则自动重置为 1。
	//  - 接口文档:https://docs.jiguang.cn/jpush/server/push/rest_api_v3_push_advanced#%E8%8E%B7%E5%8F%96%E6%8E%A8%E9%80%81%E5%94%AF%E4%B8%80%E6%A0%87%E8%AF%86cid
	GetCidForSchedulePush(ctx context.Context, count int) (*CidGetResult, error)

	// 获取有效的定时任务列表
	//  - 功能说明:获取当前有效(EndTime 未过期)的定时任务列表。
	//	- 调用地址:GET `/v3/schedules?page={page}`
	//  - 接口文档:https://docs.jiguang.cn/jpush/server/push/rest_api_push_schedule#%E8%8E%B7%E5%8F%96%E6%9C%89%E6%95%88%E7%9A%84%E5%AE%9A%E6%97%B6%E4%BB%BB%E5%8A%A1%E5%88%97%E8%A1%A8
	// 注意事项:
	//  - 返回当前 page 请求页的详细的定时任务列表,如 page < 0 则自动重置为 1;
	//  - 结果列表按 “创建时间” 排序;
	//  - 如果请求页数大于总页数,则 page 为请求值,结果列表为空;
	//  - 每页最多返回 50 个定时任务,如请求页实际的个数小于 50,则按实际数量返回。
	GetSchedules(ctx context.Context, page int) (*SchedulesGetResult, error)

	// 获取定时任务详情
	//  - 功能说明:获取当前用户指定定时任务的详细信息。
	//	- 调用地址:GET `/v3/schedules/{scheduleID}`
	//  - 接口文档:https://docs.jiguang.cn/jpush/server/push/rest_api_push_schedule#%E8%8E%B7%E5%8F%96%E5%AE%9A%E6%97%B6%E4%BB%BB%E5%8A%A1%E8%AF%A6%E6%83%85
	GetSchedule(ctx context.Context, scheduleID string) (*ScheduleGetResult, error)

	// 获取某个定时任务的所有消息 ID
	//  - 功能说明:获取当前用户指定定时任务对应的所有消息 ID 列表。
	//	- 调用地址:GET `/v3/schedules/{scheduleID}/msg_ids`
	GetScheduleMsgIDs(ctx context.Context, scheduleID string) (*ScheduleMsgIDsResult, error)

	// 更新定时任务
	//  - 功能说明:更新当前用户指定定时任务的详细信息。
	//	- 调用地址:PUT `/v3/schedules/{scheduleID}`
	//  - 接口文档:https://docs.jiguang.cn/jpush/server/push/rest_api_push_schedule#%E6%9B%B4%E6%96%B0%E5%AE%9A%E6%97%B6%E4%BB%BB%E5%8A%A1
	// 注意事项:
	//  - 不支持部分更新;
	//  - 更新后的 Trigger 必须仍是有效合法的,否则即使 Trigger 整体更新也会失败。可以更新 Enabled = false 的任务;
	//  - 定时任务(Single)与定期任务(Periodical)之间不能进行相互更新,即,原先为 Single 类任务,则不能更新为 Periodical 任务,反之亦然;
	//  - 不能更新已过期的定时任务。
	UpdateSchedule(ctx context.Context, scheduleID string, param *UpdateParam) (*UpdateResult, error)

	// 删除定时任务
	//  - 功能说明:删除当前用户指定定时任务,如果 scheduleID 不合法,则 404。
	//	- 调用地址:DELETE `/v3/schedules/{scheduleID}`
	//  - 接口文档:https://docs.jiguang.cn/jpush/server/push/rest_api_push_schedule#%E5%88%A0%E9%99%A4%E5%AE%9A%E6%97%B6%E4%BB%BB%E5%8A%A1
	DeleteSchedule(ctx context.Context, scheduleID string) (*DeleteResult, error)

	// 自定义定时推送:如果遇到 ScheduleSend 接口没有及时补充字段的情况,可以自行构建 JSON,调用此接口。
	CustomScheduleSend(ctx context.Context, param interface{}) (*SendResult, error)
}

Schedule API v3【极光推送 > REST API > 定时任务 API】

注意:调 API 创建的定时任务只能调 API 获取/修改/删除。

type APIv3Builder

type APIv3Builder struct {
	// contains filtered or unexported fields
}

用于构建和配置 Schedule API v3 访问客户端的构建器。

func NewAPIv3Builder

func NewAPIv3Builder() *APIv3Builder

func (*APIv3Builder) Build

func (b *APIv3Builder) Build() (APIv3, error)

func (*APIv3Builder) DisableHttpLogging

func (b *APIv3Builder) DisableHttpLogging() *APIv3Builder

【可选】禁用 API 的 HTTP 日志记录,即不记录 API 的 HTTP 请求和响应的日志信息。

func (*APIv3Builder) SetAppKey

func (b *APIv3Builder) SetAppKey(appKey string) *APIv3Builder

【必填】设置 API 的应用标识。

func (*APIv3Builder) SetClient

func (b *APIv3Builder) SetClient(client api.Client) *APIv3Builder

【可选】设置 API 的客户端,用于发送 HTTP 请求,默认值为 api.DefaultClient。

func (*APIv3Builder) SetHost

func (b *APIv3Builder) SetHost(host string) *APIv3Builder

【可选】设置 API 的 Host 基础 URL,默认值为 api.HostJPushPushV3。

func (*APIv3Builder) SetHttpLogLevel

func (b *APIv3Builder) SetHttpLogLevel(httpLogLevel api.HttpLogLevel) *APIv3Builder

【可选】设置 API 的 HTTP 日志记录级别,用于指定记录 API 的 HTTP 请求和响应的日志信息的详细程度,默认值为 api.HttpLogLevelBasic。

  • 可用的级别:api.HttpLogLevelNone、api.HttpLogLevelBasic、api.HttpLogLevelHeaders、api.HttpLogLevelFull;
  • 若要禁用 HTTP 日志记录,可使用 DisableHttpLogging。

func (*APIv3Builder) SetLogger

func (b *APIv3Builder) SetLogger(logger jiguang.Logger) *APIv3Builder

【可选】设置 API 的日志记录器,默认值为 api.DefaultLogger。

func (*APIv3Builder) SetMasterSecret

func (b *APIv3Builder) SetMasterSecret(masterSecret string) *APIv3Builder

【必填】设置 API 的应用主密钥。

type CidGetResult

type CidGetResult = cid.GetResult

获取定时推送唯一标识 (CID) 结果。

type DeleteResult

type DeleteResult struct {
	*api.Response `json:"-"`
	Error         *api.CodeError `json:"error,omitempty"`
}

func (*DeleteResult) IsSuccess

func (rs *DeleteResult) IsSuccess() bool

type Periodical

type Periodical struct {
	StartTime jiguang.LocalDateTime `json:"start"`           // 【必填】有效起始时间。
	EndTime   jiguang.LocalDateTime `json:"end"`             // 【必填】有效结束时间。
	Time      jiguang.LocalTime     `json:"time"`            // 【必填】任务执行时间。
	TimeUnit  jiguang.TimeUnit      `json:"time_unit"`       // 【必填】任务执行最小时间单位,有 jiguang.TimeUnitDay, jiguang.TimeUnitWeek, jiguang.TimeUnitMonth 三种。
	Frequency int                   `json:"frequency"`       // 【必填】任务执行频次,与 TimeUnit 的乘积共同表示的定期任务的执行周期,目前支持的最大值为 100。
	Point     []string              `json:"point,omitempty"` // 【可选】任务执行点,当 TimeUnit 为 jiguang.TimeUnitDay 时,此参数无效。
}

定期任务,周期触发条件。

type Push

type Push = send.Param

任务推送参数。

type Schedule

type Schedule struct {
	ScheduleID string `json:"schedule_id,omitempty"` // 任务 ID
	// contains filtered or unexported fields
}

定时任务详情。

type ScheduleGetResult

type ScheduleGetResult struct {
	*api.Response `json:"-"`
	Error         *api.CodeError `json:"error,omitempty"`
	*Schedule     `json:"-"`     // 定时任务详情
}

func (*ScheduleGetResult) IsSuccess

func (rs *ScheduleGetResult) IsSuccess() bool

func (ScheduleGetResult) MarshalJSON

func (rs ScheduleGetResult) MarshalJSON() ([]byte, error)

func (*ScheduleGetResult) UnmarshalJSON

func (rs *ScheduleGetResult) UnmarshalJSON(data []byte) error

type ScheduleMsgID

type ScheduleMsgID struct {
	MsgID     string         `json:"msg_id,omitempty"` // 消息 ID
	Error     *api.CodeError `json:"error,omitempty"`  // 错误信息
	NeedRetry bool           `json:"needRetry"`        // 是否需要重试
	Timestamp *int64         `json:"ts,omitempty"`     // 定时任务执行成功的时间戳,精确到毫秒,对于 2022-03-17 后创建的定时任务,返回的内容中将增加该字段。
}

定时任务 GetScheduleMsgIDs 接口的响应消息 ID 结构,2018-09-13 后的新数据格式。

func TryParseScheduleMsgIDFromString

func TryParseScheduleMsgIDFromString(s string) (msgID ScheduleMsgID, ok bool)

func (*ScheduleMsgID) IsSuccess

func (m *ScheduleMsgID) IsSuccess() bool

type ScheduleMsgIDsResult

type ScheduleMsgIDsResult struct {
	*api.Response `json:"-"`
	Error         *api.CodeError `json:"error,omitempty"`
	Count         *int           `json:"count,omitempty"`  // 消息 ID 数量
	MsgIDs        []string       `json:"msgids,omitempty"` // 消息 ID 列表
}

func (*ScheduleMsgIDsResult) IsSuccess

func (rs *ScheduleMsgIDsResult) IsSuccess() bool

func (*ScheduleMsgIDsResult) UnmarshalJSON

func (rs *ScheduleMsgIDsResult) UnmarshalJSON(data []byte) error

type SchedulesGetResult

type SchedulesGetResult struct {
	*api.Response `json:"-"`
	Error         *api.CodeError `json:"error,omitempty"`
	TotalCount    int            `json:"total_count,omitempty"` // 当前有效的定时任务总数
	TotalPages    int            `json:"total_pages,omitempty"` // 总页数
	Page          int            `json:"page,omitempty"`        // 当前页数
	Schedules     []Schedule     `json:"schedules,omitempty"`   // 定时任务详情列表
}

func (*SchedulesGetResult) IsSuccess

func (rs *SchedulesGetResult) IsSuccess() bool

type SendParam

type SendParam struct {
	CID     string   `json:"cid,omitempty"` // 【可选】用于防止 API 调用端重试造成服务端的重复推送而定义的一个标识符,可通过 GetCidForSchedulePush 接口获取。
	Name    string   `json:"name"`          // 【必填】任务名称,长度最大 255 字节,数字、字母、下划线、汉字。
	Enabled bool     `json:"enabled"`       // 【必填】任务当前状态。
	Trigger *Trigger `json:"trigger"`       // 【必填】任务触发条件。
	Push    *Push    `json:"push"`          // 【必填】任务推送参数。
}

type SendResult

type SendResult struct {
	*api.Response `json:"-"`
	Error         *api.CodeError `json:"error,omitempty"`
	ScheduleID    string         `json:"schedule_id,omitempty"` // 任务 ID。
	Name          string         `json:"name,omitempty"`        // 任务名称。
}

func (*SendResult) IsSuccess

func (rs *SendResult) IsSuccess() bool

type Single

type Single struct {
	Time jiguang.LocalDateTime `json:"time"` // 【必填】最晚时间不能超过一年。
}

定时任务,单次触发条件。

type TemplateParam

type TemplateParam = send.TemplateParam

模板参数(创建模板时,开发者设置的变量参数)。

type TemplatePushDetail

type TemplatePushDetail struct {
	Error      *api.CodeError `json:"error,omitempty"`       // 推送失败时的错误信息。
	ScheduleID string         `json:"schedule_id,omitempty"` // 任务 ID。
	TraceID    string         `json:"trace_id,omitempty"`    // 请求时指定的标识。
}

模板定时推送结果明细。

func (*TemplatePushDetail) IsSuccess

func (rs *TemplatePushDetail) IsSuccess() bool

func (TemplatePushDetail) MarshalJSON

func (rs TemplatePushDetail) MarshalJSON() ([]byte, error)

func (*TemplatePushDetail) UnmarshalJSON

func (rs *TemplatePushDetail) UnmarshalJSON(data []byte) error

type TemplateSendData

type TemplateSendData struct {
	ScheduleList []TemplatePushDetail `json:"schedule_list"` // 定时任务模板推送列表。
}

模板定时推送结果数据。

type TemplateSendResult

type TemplateSendResult struct {
	*api.Response `json:"-"`
	Error         *api.CodeError    `json:"error,omitempty"`
	Data          *TemplateSendData `json:"data,omitempty"` // 模板定时推送结果数据
}

func (*TemplateSendResult) IsSuccess

func (rs *TemplateSendResult) IsSuccess() bool

func (TemplateSendResult) MarshalJSON

func (rs TemplateSendResult) MarshalJSON() ([]byte, error)

func (*TemplateSendResult) UnmarshalJSON

func (rs *TemplateSendResult) UnmarshalJSON(data []byte) error

type Trigger

type Trigger struct {
	Single     *Single     `json:"single,omitempty"`     // 【可选】定时任务,单次触发执行。
	Periodical *Periodical `json:"periodical,omitempty"` // 【可选】定期任务,周期触发执行。
}

任务触发条件。

type UpdateParam

type UpdateParam struct {
	Name    string   `json:"name,omitempty"`    // 【可选】任务名称,长度最大 255 字节,数字、字母、下划线、汉字。
	Enabled *bool    `json:"enabled,omitempty"` // 【可选】任务当前状态。
	Trigger *Trigger `json:"trigger,omitempty"` // 【可选】任务触发条件。
	Push    *Push    `json:"push,omitempty"`    // 【可选】任务推送参数。
}

type UpdateResult

type UpdateResult struct {
	*api.Response `json:"-"`
	Error         *api.CodeError `json:"error,omitempty"`
	// contains filtered or unexported fields
}

func (*UpdateResult) IsSuccess

func (rs *UpdateResult) IsSuccess() bool

func (UpdateResult) MarshalJSON

func (rs UpdateResult) MarshalJSON() ([]byte, error)

func (*UpdateResult) UnmarshalJSON

func (rs *UpdateResult) UnmarshalJSON(data []byte) error

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL