Documentation
¶
Index ¶
- Constants
- type Interface
- type PeriodicJobPolicy
- type RedisPeriodicScheduler
- func (rps *RedisPeriodicScheduler) AcceptPeriodicPolicy(policy *PeriodicJobPolicy) error
- func (rps *RedisPeriodicScheduler) Clear() error
- func (rps *RedisPeriodicScheduler) Load() error
- func (rps *RedisPeriodicScheduler) RemovePeriodicPolicy(policyID string) *PeriodicJobPolicy
- func (rps *RedisPeriodicScheduler) Schedule(jobName string, params models.Parameters, cronSpec string) (string, int64, error)
- func (rps *RedisPeriodicScheduler) Start()
- func (rps *RedisPeriodicScheduler) UnSchedule(cronJobPolicyID string) error
- type Sweeper
Constants ¶
const ( // EventSchedulePeriodicPolicy is for scheduling periodic policy event EventSchedulePeriodicPolicy = "schedule" // EventUnSchedulePeriodicPolicy is for unscheduling periodic policy event EventUnSchedulePeriodicPolicy = "unschedule" )
Variables ¶
This section is empty.
Functions ¶
This section is empty.
Types ¶
type Interface ¶
type Interface interface {
// Schedule the specified cron job policy.
//
// jobName string : The name of periodical job
// params models.Parameters : The parameters required by the periodical job
// cronSpec string : The periodical settings with cron format
//
// Returns:
// The uuid of the cron job policy
// The latest next trigger time
// error if failed to schedule
Schedule(jobName string, params models.Parameters, cronSpec string) (string, int64, error)
// Unschedule the specified cron job policy.
//
// cronJobPolicyID string: The ID of cron job policy.
//
// Return:
// error if failed to unschedule
UnSchedule(cronJobPolicyID string) error
// Load and cache data if needed
//
// Return:
// error if failed to do
Load() error
// Clear all the cron job policies.
//
// Return:
// error if failed to do
Clear() error
// Start to serve
Start()
// Accept the pushed policy and cache it
//
// policy *PeriodicJobPolicy : the periodic policy being accept
//
// Return:
// error if failed to do
AcceptPeriodicPolicy(policy *PeriodicJobPolicy) error
// Remove the specified policy from the cache if it is existing
//
// policyID string : ID of the policy being removed
//
// Return:
// the ptr of the being deletd policy
RemovePeriodicPolicy(policyID string) *PeriodicJobPolicy
}
Interface defines operations the periodic scheduler should have.
type PeriodicJobPolicy ¶
type PeriodicJobPolicy struct {
// NOTES: The 'PolicyID' should not be set when serialize this policy struct to the zset
// because each 'Policy ID' is different and it may cause issue of losing zset unique capability.
PolicyID string `json:"policy_id,omitempty"`
JobName string `json:"job_name"`
JobParameters map[string]interface{} `json:"job_params"`
CronSpec string `json:"cron_spec"`
}
PeriodicJobPolicy ...
func (*PeriodicJobPolicy) DeSerialize ¶
func (pjp *PeriodicJobPolicy) DeSerialize(rawJSON []byte) error
DeSerialize the raw json to policy.
func (*PeriodicJobPolicy) Serialize ¶
func (pjp *PeriodicJobPolicy) Serialize() ([]byte, error)
Serialize the policy to raw data.
type RedisPeriodicScheduler ¶
type RedisPeriodicScheduler struct {
// contains filtered or unexported fields
}
RedisPeriodicScheduler manages the periodic scheduling policies.
func NewRedisPeriodicScheduler ¶
func NewRedisPeriodicScheduler(ctx *env.Context, namespace string, redisPool *redis.Pool, statsManager opm.JobStatsManager) *RedisPeriodicScheduler
NewRedisPeriodicScheduler is constructor of RedisPeriodicScheduler
func (*RedisPeriodicScheduler) AcceptPeriodicPolicy ¶
func (rps *RedisPeriodicScheduler) AcceptPeriodicPolicy(policy *PeriodicJobPolicy) error
AcceptPeriodicPolicy is implementation of the same method in period.Interface
func (*RedisPeriodicScheduler) Clear ¶
func (rps *RedisPeriodicScheduler) Clear() error
Clear is implementation of the same method in period.Interface
func (*RedisPeriodicScheduler) Load ¶
func (rps *RedisPeriodicScheduler) Load() error
Load data from zset
func (*RedisPeriodicScheduler) RemovePeriodicPolicy ¶
func (rps *RedisPeriodicScheduler) RemovePeriodicPolicy(policyID string) *PeriodicJobPolicy
RemovePeriodicPolicy is implementation of the same method in period.Interface
func (*RedisPeriodicScheduler) Schedule ¶
func (rps *RedisPeriodicScheduler) Schedule(jobName string, params models.Parameters, cronSpec string) (string, int64, error)
Schedule is implementation of the same method in period.Interface
func (*RedisPeriodicScheduler) UnSchedule ¶
func (rps *RedisPeriodicScheduler) UnSchedule(cronJobPolicyID string) error
UnSchedule is implementation of the same method in period.Interface
type Sweeper ¶
type Sweeper struct {
// contains filtered or unexported fields
}
Sweeper take charge of clearing the outdated data such as scheduled jobs etc.. Currently, only used in redis worker pool.
func NewSweeper ¶
NewSweeper is constructor of Sweeper.
func (*Sweeper) ClearOutdatedScheduledJobs ¶
ClearOutdatedScheduledJobs clears the outdated scheduled jobs. Try best to do