Download the PHP package tecno-system/jobby-manager without Composer
On this page you can find all versions of the php package tecno-system/jobby-manager. It is possible to download/install these versions without Composer. Possible dependencies are resolved automatically.
Download tecno-system/jobby-manager
More information about tecno-system/jobby-manager
Files in tecno-system/jobby-manager
Package jobby-manager
Short Description Manage all your cron jobs without modifying crontab. Handles locking, logging, error emails, and more.
License MIT
Homepage https://github.com/bluedrayco/JobbyManager
Informations about the package jobby-manager
Jobby, a PHP cron job manager
Install the master jobby cron job, and it will manage all your offline tasks. Add jobs without modifying crontab. Jobby can handle logging, locking, error emails and more.
NEW REPO: We have moved jobby
to a Github org. Please update your remotes to https://github.com/bluedrayco/JobbyManager.git
.
Features
- Maintain one master crontab job.
- Jobs run via PHP, so you can run them under any programmatic conditions.
- Use ordinary crontab schedule syntax (powered by the excellent
cron-expression
). - Run only one copy of a job at a given time.
- Send email whenever a job exits with an error status.
- Run job as another user, if crontab user has
sudo
privileges. - Run only on certain hostnames (handy in webfarms).
- Theoretical Windows support (but not ever tested)
Getting Started
Installation
The recommended way to install Jobby is through Composer:
Then add the following line to your (or whomever's) crontab:
After Jobby installs, you can copy an example file to the project root.
Running a job
Examples
Logging
Disabling a command
Running closures
When running closures, beware that nothing outside of the closure is visible (see #93)!
Using a DateTime
Using a Custom Scheduler
Supported Options
Each job requires these:
Key | Type | Description |
---|---|---|
schedule | string | Crontab schedule format (man -s 5 crontab ) or DateTime format (Y-m-d H:i:s ) or callable (function(): Bool { /* ... */ } ) |
command | string | The shell command to run (exclusive-or with closure ) |
closure | Closure | The anonymous PHP function to run (exclusive-or with command ) |
The options listed below can be applied to an individual job or globally through the Jobby
constructor.
Global options will be used as default values, and individual jobs can override them.
Option | Type | Default | Description |
---|---|---|---|
runAs | string | null | Run as this user, if crontab user has sudo privileges |
debug | boolean | false | Send jobby internal messages to 'debug.log' |
Filtering | Options to determine whether the job should run or not | ||
environment | string | null or getenv('APPLICATION_ENV') |
Development environment for this job |
runOnHost | string | gethostname() |
Run jobs only on this hostname |
maxRuntime | integer | null | Maximum execution time for this job (in seconds) |
enabled | boolean | true | Run this job at scheduled times |
haltDir | string | null | A job will not run if this directory contains a file bearing the job's name |
Logging | Options for logging | ||
output | string | /dev/null | Redirect stdout and stderr to this file |
output_stdout | string | value from output option |
Redirect stdout to this file |
output_stderr | string | value from output option |
Redirect stderr to this file |
dateFormat | string | Y-m-d H:i:s | Format for dates on jobby log messages |
Mailing | Options for emailing errors | ||
recipients | string | null | Comma-separated string of email addresses |
mailer | string | sendmail | Email method: sendmail or smtp or mail |
smtpHost | string | null | SMTP host, if mailer is smtp |
smtpPort | integer | 25 | SMTP port, if mailer is smtp |
smtpUsername | string | null | SMTP user, if mailer is smtp |
smtpPassword | string | null | SMTP password, if mailer is smtp |
smtpSecurity | string | null | SMTP security option: ssl or tls, if mailer is smtp |
smtpSender | string | jobby@<hostname> | The sender and from addresses used in SMTP notices |
smtpSenderName | string | Jobby | The name used in the from field for SMTP messages |
Notifications | Options for sending Alerts when errors | ||
mattermostUrl | string | null | The webhook url from Mattermost |
slackChannel | string | null | The name of Slack Channel (#channel) |
slackUrl | string | null | The webhook url from Slack |
slackSender | string | null | The name used in the from field for Slack |
Credits
Developed before, but since inspired by whenever.
Support this project
Special Thanks
For my love Ana Belen Cruz who always believes in me and encourages me to be better every day.
All versions of jobby-manager with dependencies
dragonmantank/cron-expression Version ^v3.0
maknz/slack Version ^1.7
laravel/serializable-closure Version ^1.3
swiftmailer/swiftmailer Version ^6.0
symfony/process Version ^6.2