course-hero / symfony-cron-bundle
Cron-related utilities for Symfony2
Installs: 9 518
Dependents: 0
Suggesters: 0
Security: 0
Stars: 1
Watchers: 25
Forks: 3
Open Issues: 0
Type:symfony-bundle
Requires
- php: >= 5.3.3
- symfony/symfony: ~2.5
Requires (Dev)
- mikey179/vfsstream: ~1.4
- phpunit/phpunit: ~4.3
This package is not auto-updated.
Last update: 2024-12-17 04:37:01 UTC
README
What is symfony-cron?
symfony-cron is a bundle of utilities for Symfony2 that provide functions related to scheduled tasks run out of a cron context.
Requirements
symfony-cron is supported on PHP 5.4+ with Symfony 2.5+.
Installation
The best way to install symfony-cron is to include the bundle using a mechanism such as composer. Information about the package is published to packagist.
Use
To use symfony-cron in a Symfony2-based project, start by defining how you want to use the system. The following checklist might help:
- What type of lock service will be used? (File, memcached, etc.)
- Do commands need to be executed in a child process?
- Processes that unexpectedly terminate cause locks to be unreleased if not executed in a child process, thus preventing future processes from running.
Example: File Lock with Child Process
app/config/config.yml:
services: symfony_cron.lock_file_service: class: SymfonyCronBundle\Component\Lock\LockFileService symfony_cron.default_lock_service: "@symfony_cron.lock_file_service" symfony_cron.process_service: class: SymfonyCronBundle\Component\Process\ProcessService
crontab:
* * * * * /path/to/script
/path/to/script:
#!/bin/bash
/usr/bin/php \
/path/to/symfony/app/console \
cron:single_exec \
--id /path/to/lock/files/some-unique-file \
--child_process \
-- \
/path/to/child/script \
--script-option \
script-args
Example: Multiple Instances of Same Script as Embedded Application
app/config/config.yml:
services: symfony_cron.lock_file_service: class: SymfonyCronBundle\Component\Lock\LockFileService symfony_cron.default_lock_service: "@symfony_cron.lock_file_service" symfony_cron.process_service: class: SymfonyCronBundle\Component\Process\ProcessService
crontab:
* * * * * /path/to/script instance-1-unique-key parameter-set-1
* * * * * /path/to/script instance-2-unique-key parameter-set-2
/path/to/script:
#!/bin/bash KEY="$1" PARAM="$2" /usr/bin/php \ /path/to/symfony/app/console \ cron:single_exec \ --id ${KEY} \ -- \ some:command \ ${PARAM}
Contributing
symfony-cron is an open source, community-driven project. If you'd like to contribute, please read the Contributing documentation. If you're submitting a pull request, please follow the guidelines in the Submitting a Patch section and use Pull Request Template.
Running Tests
All tests are supported using standard phpunit practices. A helper script has also been provided to assist with running tests.