Cronbee

Manage, run and log all your scheduled tasks using system capabilities with crontab and schtasks
CLI
$ cronbee list
$ cronbee clear
$ cronbee ensure ./cronbee.json
JSON sample, see cronbee.ensure API for full parameters list for a task.
{
"namespace": "foobar",
"tasks": [
{
"taskName": "some_echo",
"taskRun": "cronbee echo Foo",
"cron": "0 12 * * *",
"schtaskFlags": "/sc daily /st 12:00"
}
]
}
taskRun - cronbee prefix means, the os starts the cronbee process at specified interval. cronbee starts underlying process. The wrapped process is for monitoring and logging purpose. You will get the information how much time your task took and if it was successful. If you do not need the logging feature, you can provide just the command (without cronbee)
API
Documentation 🔗
Create scheduled task
If the task already exists, does nothing
import { cronbee } from 'cronbee'
await cronbee.ensure({
taskName: 'check emails',
taskRun: `node emailchecker --foo`,
workingDirectory: '/home/www'
cron: '0 12 * * *',
schtaskFlags: '/sc daily /st 12:00',
})
List scheduled tasks
let tasks = await cronbee.load();
Remove scheduled task
await cronbee.remove({ taskName: 'check emails' });
Runner
Though you can define any shell command to be executed at scheduled time by the os, you can also use the cronbee as the wrapped runner, to log executions to CSV files. Just prefix your command with cronbee and you are done. The logs can be found in ./logs/everlog/cronbee
await cronbee.ensure({
taskRun: `cronbee node emailchecker --foo`,
});
Additional Hints
-
We can start commands from ./node_modules/.bin/ directory, so you can use just the command name.
-
Output all std output to a file by appending >> /path/to/logfile.log 2>&1 to you task command.
🏁
©️ MIT License.