|
@ -2,8 +2,10 @@ package pub_client |
|
|
|
|
|
|
|
|
import ( |
|
|
import ( |
|
|
"fmt" |
|
|
"fmt" |
|
|
|
|
|
"github.com/golang/protobuf/proto" |
|
|
"github.com/seaweedfs/seaweedfs/weed/mq/pub_balancer" |
|
|
"github.com/seaweedfs/seaweedfs/weed/mq/pub_balancer" |
|
|
"github.com/seaweedfs/seaweedfs/weed/pb/mq_pb" |
|
|
"github.com/seaweedfs/seaweedfs/weed/pb/mq_pb" |
|
|
|
|
|
"github.com/seaweedfs/seaweedfs/weed/pb/schema_pb" |
|
|
"github.com/seaweedfs/seaweedfs/weed/util" |
|
|
"github.com/seaweedfs/seaweedfs/weed/util" |
|
|
"time" |
|
|
"time" |
|
|
) |
|
|
) |
|
@ -25,6 +27,16 @@ func (p *TopicPublisher) Publish(key, value []byte) error { |
|
|
}) |
|
|
}) |
|
|
} |
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
func (p *TopicPublisher) PublishRecord(key []byte, recordValue *schema_pb.RecordValue) error { |
|
|
|
|
|
// serialize record value
|
|
|
|
|
|
value, err := proto.Marshal(recordValue) |
|
|
|
|
|
if err != nil { |
|
|
|
|
|
return fmt.Errorf("failed to marshal record value: %v", err) |
|
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
return p.Publish(key, value) |
|
|
|
|
|
} |
|
|
|
|
|
|
|
|
func (p *TopicPublisher) FinishPublish() error { |
|
|
func (p *TopicPublisher) FinishPublish() error { |
|
|
if inputBuffers, found := p.partition2Buffer.AllIntersections(0, pub_balancer.MaxPartitionCount); found { |
|
|
if inputBuffers, found := p.partition2Buffer.AllIntersections(0, pub_balancer.MaxPartitionCount); found { |
|
|
for _, inputBuffer := range inputBuffers { |
|
|
for _, inputBuffer := range inputBuffers { |
|
|