예제 #1
0
파일: node_test.go 프로젝트: jmptrader/pluq
func (s *NodeSuite) TestProperties(c *C) {
	root := newNode()
	rootProps := NewProperties().SetRetry(1)
	root.setProperties([]string{}, rootProps)
	props := root.properties([]string{})
	c.Assert(props, DeepEquals, rootProps)

	root.setProperties([]string{"a", "b"}, NewProperties().SetTimeout(types.Duration(time.Second)))
	props = root.properties([]string{})
	c.Assert(props, DeepEquals, rootProps)
	props = root.properties([]string{"a"})
	c.Assert(props, DeepEquals, rootProps)
	props = root.properties([]string{"a", "b"})
	c.Assert(props, DeepEquals, NewProperties().SetRetry(1).SetTimeout(types.Duration(time.Second)))

	root.setProperties([]string{"a"}, NewProperties().SetRetry(2))
	props = root.properties([]string{"a", "b"})
	c.Assert(props, DeepEquals, NewProperties().SetRetry(2).SetTimeout(types.Duration(time.Second)))
	props = root.properties([]string{"a", "b", "c"})
	c.Assert(props, DeepEquals, NewProperties().SetRetry(2).SetTimeout(types.Duration(time.Second)))
	props = root.properties([]string{"a", "c"})
	c.Assert(props, DeepEquals, NewProperties().SetRetry(2))
}
예제 #2
0
파일: message.go 프로젝트: jmptrader/pluq
package storage

import (
	"time"

	"github.com/yosisa/pluq/types"
	"github.com/yosisa/pluq/uid"
)

var (
	DefaultRetry   = types.Retry(10)
	DefaultTimeout = types.Duration(30 * time.Second)
)

type Envelope struct {
	ID       uid.ID
	Queue    string
	Retry    types.Retry
	Timeout  types.Duration
	Messages []*Message
}

func NewEnvelope() *Envelope {
	return &Envelope{
		Retry:   DefaultRetry,
		Timeout: DefaultTimeout,
	}
}

func (e *Envelope) AddMessage(m *Message) {
	e.Messages = append(e.Messages, m)