Backend¶
Backend用于保存任务结果
Redis¶
https://github.com/gojuukaze/YTask/tree/master/drives/redis
import "github.com/gojuukaze/YTask/drives/redis/v3"
// 127.0.0.1 : host
// 6379 : port
// "" : password
// 0 : db
// 10 : 连接池大小.
// 对于server端,如果为0,则值为min(10, numWorkers)
// 对于client端, 你需要根据情况自行设置连接池
redis.NewRedisBackend("127.0.0.1", "6379", "", 0, 10)
MemCache¶
https://github.com/gojuukaze/YTask/tree/master/drives/memcache
import "github.com/gojuukaze/YTask/drives/memcache/v3"
// []string{"127.0.0.1:11211"} : ["host:port"]
// 10 : 连接池大小.
// 对于server端,如果为0,则值为min(10, numWorkers)
// 对于client端, 你需要根据情况自行设置连接池
b := memcache.NewMemCacheBackend([]string{"127.0.0.1:11211"}, 10)
Mongo¶
https://github.com/gojuukaze/YTask/tree/master/drives/mongo2
如果你是从v2版升级,且希望保留旧数据,则使用 mongo ,否则使用mongo2
—
注意1: MongoBackend 无需设置连接池。
注意2: 若需设置过期时间,只能在 NewMongoBackend()
函数中设置,且设置后后续无法修改。
要修改的话只能手动修改MongoDB对应表的索引(修改ExpireAfterSeconds)
import "github.com/gojuukaze/YTask/drives/mongo2/v3"
// 127.0.0.1 : host
// 27017 : port
// "" : username
// "" : password
// "test": db
// "test": collection
// 20: 过期时间,单位秒
backend := mongo2.NewMongoBackend("127.0.0.1", "27017", "", "", "test", "test", 20)
自定义backend¶
你可以自定义backend。同broker一样,调用Activate()
时再建立连接。 具体注意事项参照 自定义Broker
type BackendInterface interface {
SetResult(result message.Result, exTime int) error
GetResult(key string) (message.Result, error)
// Activate connection
Activate()
SetPoolSize(int)
GetPoolSize() int
Clone() BackendInterface
}