Documentation ¶
Index ¶
- func Wrap(j interface{}) job.Interface
- type GoCraftWorkPool
- func (gcwp *GoCraftWorkPool) CancelJob(jobID string) error
- func (gcwp *GoCraftWorkPool) Enqueue(jobName string, params models.Parameters, isUnique bool) (models.JobStats, error)
- func (gcwp *GoCraftWorkPool) GetJobStats(jobID string) (models.JobStats, error)
- func (gcwp *GoCraftWorkPool) IsKnownJob(name string) (interface{}, bool)
- func (gcwp *GoCraftWorkPool) PeriodicallyEnqueue(jobName string, params models.Parameters, cronSetting string) (models.JobStats, error)
- func (gcwp *GoCraftWorkPool) RegisterHook(jobID string, hookURL string) error
- func (gcwp *GoCraftWorkPool) RegisterJob(name string, j interface{}) error
- func (gcwp *GoCraftWorkPool) RegisterJobs(jobs map[string]interface{}) error
- func (gcwp *GoCraftWorkPool) RetryJob(jobID string) error
- func (gcwp *GoCraftWorkPool) Schedule(jobName string, params models.Parameters, runAfterSeconds uint64, ...) (models.JobStats, error)
- func (gcwp *GoCraftWorkPool) Start() error
- func (gcwp *GoCraftWorkPool) Stats() (models.JobPoolStats, error)
- func (gcwp *GoCraftWorkPool) StopJob(jobID string) error
- func (gcwp *GoCraftWorkPool) ValidateJobParameters(jobType interface{}, params map[string]interface{}) error
- type Interface
- type MessageServer
- type RedisJob
- type RedisPoolContext
Constants ¶
This section is empty.
Variables ¶
This section is empty.
Functions ¶
Types ¶
type GoCraftWorkPool ¶
type GoCraftWorkPool struct {
// contains filtered or unexported fields
}
GoCraftWorkPool is the pool implementation based on gocraft/work powered by redis.
func NewGoCraftWorkPool ¶
func NewGoCraftWorkPool(ctx *env.Context, namespace string, workerCount uint, redisPool *redis.Pool) *GoCraftWorkPool
NewGoCraftWorkPool is constructor of goCraftWorkPool.
func (*GoCraftWorkPool) CancelJob ¶
func (gcwp *GoCraftWorkPool) CancelJob(jobID string) error
CancelJob will cancel the job
func (*GoCraftWorkPool) Enqueue ¶
func (gcwp *GoCraftWorkPool) Enqueue(jobName string, params models.Parameters, isUnique bool) (models.JobStats, error)
Enqueue job
func (*GoCraftWorkPool) GetJobStats ¶
func (gcwp *GoCraftWorkPool) GetJobStats(jobID string) (models.JobStats, error)
GetJobStats return the job stats of the specified enqueued job.
func (*GoCraftWorkPool) IsKnownJob ¶
func (gcwp *GoCraftWorkPool) IsKnownJob(name string) (interface{}, bool)
IsKnownJob ...
func (*GoCraftWorkPool) PeriodicallyEnqueue ¶
func (gcwp *GoCraftWorkPool) PeriodicallyEnqueue(jobName string, params models.Parameters, cronSetting string) (models.JobStats, error)
PeriodicallyEnqueue job
func (*GoCraftWorkPool) RegisterHook ¶
func (gcwp *GoCraftWorkPool) RegisterHook(jobID string, hookURL string) error
RegisterHook registers status hook url sync method
func (*GoCraftWorkPool) RegisterJob ¶
func (gcwp *GoCraftWorkPool) RegisterJob(name string, j interface{}) error
RegisterJob is used to register the job to the pool. j is the type of job
func (*GoCraftWorkPool) RegisterJobs ¶
func (gcwp *GoCraftWorkPool) RegisterJobs(jobs map[string]interface{}) error
RegisterJobs is used to register multiple jobs to pool.
func (*GoCraftWorkPool) RetryJob ¶
func (gcwp *GoCraftWorkPool) RetryJob(jobID string) error
RetryJob retry the job
func (*GoCraftWorkPool) Schedule ¶
func (gcwp *GoCraftWorkPool) Schedule(jobName string, params models.Parameters, runAfterSeconds uint64, isUnique bool) (models.JobStats, error)
Schedule job
func (*GoCraftWorkPool) Start ¶
func (gcwp *GoCraftWorkPool) Start() error
Start to serve Unblock action
func (*GoCraftWorkPool) Stats ¶
func (gcwp *GoCraftWorkPool) Stats() (models.JobPoolStats, error)
Stats of pool
func (*GoCraftWorkPool) StopJob ¶
func (gcwp *GoCraftWorkPool) StopJob(jobID string) error
StopJob will stop the job
func (*GoCraftWorkPool) ValidateJobParameters ¶
func (gcwp *GoCraftWorkPool) ValidateJobParameters(jobType interface{}, params map[string]interface{}) error
ValidateJobParameters ...
type Interface ¶
type Interface interface { //Start to serve // //Return: // error if failed to start Start() error //Register job to the pool. // //name string : job name for referring //job interface{}: job handler which must implement the job.Interface. // //Return: // error if failed to register RegisterJob(name string, job interface{}) error //Register multiple jobs. // //jobs map[string]interface{}: job map, key is job name and value is job handler. // //Return: // error if failed to register RegisterJobs(jobs map[string]interface{}) error //Enqueue job // //jobName string : the name of enqueuing job //params models.Parameters : parameters of enqueuing job //isUnique bool : specify if duplicated job will be discarded // //Returns: // models.JobStats: the stats of enqueuing job if succeed // error : if failed to enqueue Enqueue(jobName string, params models.Parameters, isUnique bool) (models.JobStats, error) //Schedule job to run after the specified interval (seconds). // //jobName string : the name of enqueuing job //runAfterSeconds uint64 : the waiting interval with seconds //params models.Parameters : parameters of enqueuing job //isUnique bool : specify if duplicated job will be discarded // //Returns: // models.JobStats: the stats of enqueuing job if succeed // error : if failed to enqueue Schedule(jobName string, params models.Parameters, runAfterSeconds uint64, isUnique bool) (models.JobStats, error) //Schedule the job periodically running. // //jobName string : the name of enqueuing job //params models.Parameters : parameters of enqueuing job //cronSetting string : the periodic duration with cron style like '0 * * * * *' // //Returns: // models.JobStats: the stats of enqueuing job if succeed // error : if failed to enqueue PeriodicallyEnqueue(jobName string, params models.Parameters, cronSetting string) (models.JobStats, error) //Return the status info of the pool. // //Returns: // models.JobPoolStats : the stats info of all running pools // error : failed to check Stats() (models.JobPoolStats, error) //Check if the job has been already registered. // //name string : name of job // //Returns: // interface{} : the job type of the known job if it's existing // bool : if the known job requires parameters IsKnownJob(name string) (interface{}, bool) ValidateJobParameters(jobType interface{}, params map[string]interface{}) error //Get the stats of the specified job // //jobID string : ID of the enqueued job // //Returns: // models.JobStats : job stats data // error : error returned if meet any problems GetJobStats(jobID string) (models.JobStats, error) //Stop the job // //jobID string : ID of the enqueued job // //Return: // error : error returned if meet any problems StopJob(jobID string) error //Cancel the job // //jobID string : ID of the enqueued job // //Return: // error : error returned if meet any problems CancelJob(jobID string) error //Retry the job // //jobID string : ID of the enqueued job // //Return: // error : error returned if meet any problems RetryJob(jobID string) error //Register hook // //jobID string : ID of job //hookURL string : the hook url // //Return: // error : error returned if meet any problems RegisterHook(jobID string, hookURL string) error }
Interface for worker pool. More like a driver to transparent the lower queue.
type MessageServer ¶
type MessageServer struct {
// contains filtered or unexported fields
}
MessageServer implements the sub/pub mechanism via redis to do async message exchanging.
func NewMessageServer ¶
NewMessageServer creates a new ptr of MessageServer
func (*MessageServer) Subscribe ¶
func (ms *MessageServer) Subscribe(event string, callback interface{}) error
Subscribe event with specified callback
type RedisJob ¶
type RedisJob struct {
// contains filtered or unexported fields
}
RedisJob is a job wrapper to wrap the job.Interface to the style which can be recognized by the redis pool.
func NewRedisJob ¶
func NewRedisJob(j interface{}, ctx *env.Context, statsManager opm.JobStatsManager) *RedisJob
NewRedisJob is constructor of RedisJob
type RedisPoolContext ¶
type RedisPoolContext struct{}
RedisPoolContext ... We did not use this context to pass context info so far, just a placeholder.