greg-doak / cron-bundle
此扩展包提供cron管理功能。
dev-master / 1.x-dev
2018-03-27 15:14 UTC
Requires
- php: ^7.1.3
- symfony/console: ^4.0
- symfony/orm-pack: ^1.0
- symfony/validator: ^4.0
This package is not auto-updated.
Last update: 2024-09-29 05:49:18 UTC
README
此扩展包为您的Symfony项目提供cron管理工具。
安装
将greg-doak/cron-bundle添加到您的composer.json文件中。
$ composer require greg-doak/cron-bundle
在config/bundles.php中注册该扩展包。
return [ // ... GregDoak\CronBundle\GregDoakCronBundle::class => ['all' => true], ];
创建数据库表。
$ php bin/console doctrine:migrations:diff $ php bin/console doctrine:migrations:migrate
或者
$ php bin/console doctrine:schema:update --force
创建第一个任务。
$ php bin/console cron:create
配置
将调度程序添加到cron中。
*/5 * * * * php /root/to/your/application/bin/console cron:run:scheduled
或者,在页面请求时运行调度程序,请配置services.yaml。
parameters:
// ...
gregdoak.cron.run_on_request: true
这可能会引起性能问题,因此建议仅在开发环境中运行。
使用
运行单个任务,您将被提示选择要运行的任务。
$ php bin/console cron:run:single
终止正在运行的任务,您将被提示选择正在运行的任务。
$ php bin/console cron:kill
更新任务。
$ php bin/console cron:update
注意事项
创建了3个数据库表。
cron_jobs - 每次运行调度程序或单个任务时都会创建一条记录,确保任务不能同时运行。它还记录开始和结束时间,以衡量整个作业的性能。
cron_job_tasks - 每条记录包含一个单独的任务,正在运行的任务将通过记录cron_job_id来保留。
cron_job_logs - 每个任务都会创建一个日志,记录输出、退出代码、开始和结束时间。