ansien / simple-job-queue-bundle
无需 RabbitMQ 或其他外部依赖即可为您的 Symfony 应用程序提供简单的后台作业。
Requires
- php: >=7.3.0
- symfony/lock: ^5.0
Requires (Dev)
- friendsofphp/php-cs-fixer: ^2.16
- phpro/grumphp: ^0.16.2
This package is not auto-updated.
Last update: 2024-09-25 18:36:16 UTC
README
警告:此包已被弃用且不再维护。请使用 schmittjoh/JMSJobQueueBundle 包代替。
SimpleJobQueueBundle
该扩展包可以让您非常容易地在 Symfony 应用程序中运行后台作业,而无需使用 RabbitMQ 等消息队列。
这允许您通过在后台运行繁重任务或计算来加速您的 Symfony 应用程序。
安装
您可以通过 composer 安装此包。
composer require ansien/simple-job-queue-bundle
安装后:创建迁移或运行 php bin/console doctrine:schema:update --force
命令以创建 sjqb_jobs
表。
使用方法
创建作业
您可以注入 Ansien\SimpleJobQueueBundle\Service\SimpleJobService
服务。此服务允许您轻松创建作业。您也可以手动创建并持久化 Ansien\SimpleJobQueueBundle\Entity\Job
实例。
$this->simpleJobService->createJob('app:test-command', [ 'foo' => 'bar' '--optional-foo' => 'bar' ]);
运行待处理作业(开发环境)
您可以在开发时使用以下方法运行所有待处理作业:
php bin/console simple-job-queue:run
运行待处理作业(生产环境)
在您的生产环境中,建议使用 Supervisor,它可以并行运行多个作业并在作业崩溃时自动恢复,从而保证高可用性。
以下是一个您可以使用示例配置:
[program:simple_job_queue] command=php %kernel.root_dir%/console simple-job-queue:run --env=prod --verbose process_name=%(program_name)s numprocs=1 directory=/tmp autostart=true autorestart=true startsecs=5 startretries=10 user=www-data redirect_stderr=false stdout_logfile=/var/log/simple_job_queue.out.log stdout_capture_maxbytes=1MB stderr_logfile=/var/log/simple_job_queue.error.log stderr_capture_maxbytes=1MB
变更日志
有关最近更改的更多信息,请参阅 CHANGELOG。
测试
composer test
鸣谢
此扩展包受到了更流行的 JMSJobQueueBundle 的极大启发。创建此扩展包的原因是原扩展包缺乏更新且不支持 Symfony 5。
贡献
有关详细信息,请参阅 CONTRIBUTING。
许可
MIT 许可证(MIT)。有关更多信息,请参阅 许可文件。