Rocket.Chat.Apps-engine
Rocket.Chat.Apps-engine copied to clipboard
Implement Scheduler
An Application needs the ability to schedule a task that runs at a configurable interval or at a specific time. This can be useful for several instances, such as a /remind command or a daily stand up question.
A task should only run on one server when there are several instances of Rocket.Chat running. To do this I am thinking of the following terminology (with more details coming later, as this is a rough brain dump issue post):
- Workers
- Worker IDs
- Worker Grabbers
- Manager
- Queue
- Time to Live
Some projects to look into that handle these things currently (reminder: the Apps are an abstraction layer from the database and backing system, thus all of these details are required even if the backing system already has it). meteor-syncd-cron and SteveJobs
PR related to this issue: https://github.com/RocketChat/Rocket.Chat.Apps-engine/pull/89