Package Exports
- cronbee
- cronbee/lib/cronbee.js
This package does not declare an exports field, so the exports above have been automatically detected and optimized by JSPM instead. If any package subpath is missing, it is recommended to post an issue to the original package (cronbee) to support the "exports" field. If that is not possible, create a JSPM override to customize the exports field for this package.
Readme
Cronbee
Manage, run and log all your scheduled tasks using system capabilities with crontab and schtasks
CLI
# List active cron jobs created with `cronbee`
$ cronbee list
# Remove active cron jobs created with `cronbee`
$ cronbee clear
# Ensure cron jobs (from File)
$ cronbee ensure ./cronbee.jsonJSON 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-cronbeeprefix means, theosstarts thecronbeeprocess at specified interval.cronbeestarts 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 (withoutcronbee)
API
Create scheduled task
If the task already exists, does nothing
import { cronbee } from 'cronbee'
await cronbee.ensure({
// Name your task
taskName: 'check emails',
// Execute any Shell command with arguments
taskRun: `node emailchecker --foo`,
// By default the working directory will be the current directory
workingDirectory: '/home/www'
/** Depending on the system, define timing configurations for crontab or schtasks separately */
// crontab example
cron: '0 12 * * *',
// schtasks example
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({
// ... config
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>&1to you task command.
đ
ÂŠī¸ MIT License.