pnixx/crontab
Composer 安装命令:
composer require pnixx/crontab
包简介
Provides a clear syntax for writing and deploying cron jobs
README 文档
README
Crontab for PHP provides a clear syntax for writing and deploying cron jobs (inspired by whenever).
Installation
$ composer require pnixx/crontab
Usage
use PNixx\Crontab\Crontab; use PNixx\Crontab\Job; //Initialize constructor $crontab = new Crontab('example.com', '/path/to/example.com'); //Add job for run every minute $job = new Job('bin/console hello'); $crontab->add($job); //Add job for run hourly $job = new Job('bin/console update'); $job ->setTime(Job::HOURLY) ->setLogFile('logs/execute.log'); $crontab->add($job); //Add job for run custom time $job = new Job('rm -Rf /var/cache'); $job->setTime('15 * * * *'); $crontab->add($job); //Add job for run every two minutes $job = new Job('echo "Hello World!"'); $job->setMinute('*/2'); $crontab->add($job); //Update crontab $crontab->update();
Result append or replace block to your crontab:
#===BEGIN Crontab for project: example.com
* * * * * cd /path/to/example.com && bin/console hello
0 * * * * cd /path/to/example.com && bin/console update >> /path/to/example.com/logs/execute.log
15 * * * * cd /path/to/example.com && rm -Rf /var/cache
*/2 * * * * cd /path/to/example.com && echo "Hello World!"
#===END Crontab for project: example.com
Capistrano\Symfony integration
See on Capistrano::Symfony documentation plugin for reference.
Symfony 3 command class for generation crontab
use PNixx\Crontab\Crontab; use PNixx\Crontab\Job; use Symfony\Bundle\FrameworkBundle\Command\ContainerAwareCommand; use Symfony\Component\Console\Input\InputInterface; use Symfony\Component\Console\Output\OutputInterface; class CrontabUpdateCommand extends ContainerAwareCommand { public function configure() { $this->setName('crontab:update'); $this->setDescription('Update all cron tasks for project'); } protected function execute(InputInterface $input, OutputInterface $output) { $root_path = realpath($this->getContainer()->get('kernel')->getRootDir() . '/..'); //Initialize constructor crontab for current environment $crontab = new Crontab($this->getContainer()->get('kernel')->getEnvironment(), $root_path); //Add your jobs $crontab->add(new Job('echo "Hello World!"')); //Update $crontab->update(); } }
Add the following to deploy.rb for Capistrano '~> 3.5'
namespace :deploy do task :crontab do on roles(:db) do invoke 'symfony:console', 'crontab:update', '--no-interaction' end end end after 'deploy:published', 'deploy:crontab'
pnixx/crontab 适用场景与选型建议
pnixx/crontab 是一款 基于 PHP 开发的 Composer 扩展包,目前已累计 3.74k 次下载、GitHub Stars 达 0, 最近一次更新时间为 2016 年 05 月 13 日, 在 PHP 生态内属于活跃度较高的组件。
我们在过去多个企业项目中使用过 pnixx/crontab 或与其功能相近的方案,如果你在选型或落地过程中遇到问题,例如 版本兼容、二次改造、私有化封装、与内部系统对接、生产 BUG 排查,欢迎联系我们协助评估。
基于 pnixx/crontab 在你已有业务上做功能扩展、字段裁剪、UI 适配、与内部账号 / 权限 / 日志系统的深度对接。
线上偶发问题、内存泄漏、慢查询、并发异常等排查修复;针对高流量场景做缓存、队列、索引层面的调优。
承接完整的项目从需求 → 设计 → 开发 → 上线 → 长期运维;也可按月提供技术保姆服务。
统计信息
- 总下载量: 3.74k
- 月度下载量: 0
- 日度下载量: 0
- 收藏数: 0
- 点击次数: 23
- 依赖项目数: 0
- 推荐数: 0
其他信息
- 授权协议: MIT
- 更新时间: 2016-05-13