Hey there,
What you're describing is a distributed task scheduler.
I am not aware of any frameworks for you to integrate this into your application in Go, although something in the stream processing family of libraries might be able to help if that's what you really want. That said, I generally don't see folks integrating distributed task scheduling into their applications directly, but rather using a distributed task scheduler to manage how their applications and tasks are run.
The approach I have seen most often is to use your existing scheduler / infrastructure management tools to accomplish this. For example, if you were already using Kubernetes, you might use the
Job primitive. I wouldn't necessarily recommend starting up a Kubernetes cluster _just_ to schedule a single task, but if you're already using it, that's how you might tackle it.
There's lots of distributed task schedulers and platforms that could accomplish this goal, so I would start with the one that you're already using to scale your services on demand and determine if it has a "scheduled job" type task.
Good luck!
Brian