You can buy this project and download/modify it how often you want.
// register worker go func() { c := registerAsWorker() defer c.Close() }()