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) *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