mirror of
https://github.com/hibiken/asynq.git
synced 2025-09-19 05:17:30 +08:00
client.Enqueue - prevent empty task's typename
This commit is contained in:
@@ -178,6 +178,9 @@ func (d processInOption) Value() interface{} { return time.Duration(d) }
|
||||
// ErrDuplicateTask error only applies to tasks enqueued with a Unique option.
|
||||
var ErrDuplicateTask = errors.New("task already exists")
|
||||
|
||||
// ErrEmptyTypeTask indicates that task's typename is not specified.
|
||||
var ErrEmptyTypeTask = errors.New("task typename not specified")
|
||||
|
||||
type option struct {
|
||||
retry int
|
||||
queue string
|
||||
@@ -266,6 +269,9 @@ func (c *Client) Close() error {
|
||||
//
|
||||
// If no ProcessAt or ProcessIn options are provided, the task will be pending immediately.
|
||||
func (c *Client) Enqueue(task *Task, opts ...Option) (*TaskInfo, error) {
|
||||
if task.Type() == "" {
|
||||
return nil, fmt.Errorf("%w", ErrEmptyTypeTask)
|
||||
}
|
||||
c.mu.Lock()
|
||||
if defaults, ok := c.opts[task.Type()]; ok {
|
||||
opts = append(defaults, opts...)
|
||||
|
Reference in New Issue
Block a user