Enchantrix/pkg/pool/pool.go

45 lines
740 B
Go
Raw Permalink Normal View History

package pool
import (
"github.com/Snider/Enchantrix/pkg/miner"
"time"
)
type PoolClient struct {
URL string
User string
Pass string
JobQueue *miner.JobQueue
stopChannel chan struct{}
}
func New(url, user, pass string, jobQueue *miner.JobQueue) *PoolClient {
return &PoolClient{
URL: url,
User: user,
Pass: pass,
JobQueue: jobQueue,
stopChannel: make(chan struct{}),
}
}
func (p *PoolClient) Start() {
go func() {
ticker := time.NewTicker(5 * time.Second)
defer ticker.Stop()
for {
select {
case <-ticker.C:
p.JobQueue.Set(miner.NewMockJob())
case <-p.stopChannel:
return
}
}
}()
}
func (p *PoolClient) Stop() {
close(p.stopChannel)
}