[GH-ISSUE #873] [FEATURE REQUEST] customize serializer #430

Open
opened 2026-03-02 05:21:09 +03:00 by kerem · 0 comments
Owner

Originally created by @cold-bin on GitHub (Apr 29, 2024).
Original GitHub issue: https://github.com/hibiken/asynq/issues/873

Originally assigned to: @hibiken on GitHub.

Is your feature request related to a problem? Please describe.
I want to customize serializer, need a defined interface in order to better readability or better performance

// EncodeSchedulerEnqueueEvent marshals the given event
// and returns an encoded bytes.
func EncodeSchedulerEnqueueEvent(event *SchedulerEnqueueEvent) ([]byte, error) {
	if event == nil {
		return nil, fmt.Errorf("cannot encode nil enqueue event")
	}
	enqueuedAt, err := ptypes.TimestampProto(event.EnqueuedAt)
	if err != nil {
		return nil, err
	}
	return proto.Marshal(&pb.SchedulerEnqueueEvent{
		TaskId:      event.TaskID,
		EnqueueTime: enqueuedAt,
	})
}

Describe the solution you'd like

type Serializer interface{
  func Marshal(v any) ([]byte, error)
  func Unmarshal(data []byte, v any) error
}

so that, I can write my serializer.

Originally created by @cold-bin on GitHub (Apr 29, 2024). Original GitHub issue: https://github.com/hibiken/asynq/issues/873 Originally assigned to: @hibiken on GitHub. **Is your feature request related to a problem? Please describe.** I want to customize serializer, need a defined interface in order to better readability or better performance ```go // EncodeSchedulerEnqueueEvent marshals the given event // and returns an encoded bytes. func EncodeSchedulerEnqueueEvent(event *SchedulerEnqueueEvent) ([]byte, error) { if event == nil { return nil, fmt.Errorf("cannot encode nil enqueue event") } enqueuedAt, err := ptypes.TimestampProto(event.EnqueuedAt) if err != nil { return nil, err } return proto.Marshal(&pb.SchedulerEnqueueEvent{ TaskId: event.TaskID, EnqueueTime: enqueuedAt, }) } ``` **Describe the solution you'd like** ```go type Serializer interface{ func Marshal(v any) ([]byte, error) func Unmarshal(data []byte, v any) error } ``` so that, I can write my serializer.
Sign in to join this conversation.
No milestone
No project
No assignees
1 participant
Notifications
Due date
The due date is invalid or out of range. Please use the format "yyyy-mm-dd".

No due date set.

Dependencies

No dependencies set.

Reference
starred/asynq#430
No description provided.