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
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):
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