Files
ragflow/internal/service/task_publisher.go

32 lines
724 B
Go
Raw Normal View History

package service
import (
"encoding/json"
"fmt"
"ragflow/internal/common"
"ragflow/internal/engine"
)
type TaskPublisher interface {
PublishTaskMessage(subject string, msg common.TaskMessage) error
}
type MessageQueueTaskPublisher struct{}
func NewMessageQueueTaskPublisher() *MessageQueueTaskPublisher {
return &MessageQueueTaskPublisher{}
}
func (p *MessageQueueTaskPublisher) PublishTaskMessage(subject string, msg common.TaskMessage) error {
msgQueueEngine := engine.GetMessageQueueEngine()
if msgQueueEngine == nil {
return fmt.Errorf("message queue engine is not initialized")
}
payload, err := json.Marshal(msg)
if err != nil {
return err
}
return msgQueueEngine.PublishTask(subject, payload)
}