ansien/simple-job-queue-bundle

无需 RabbitMQ 或其他外部依赖即可为您的 Symfony 应用程序提供简单的后台作业。

安装: 12

依赖项: 0

建议者: 0

安全: 0

星星: 2

关注者: 1

分支: 0

类型:symfony-bundle

1.0.0 2019-11-26 21:21 UTC

This package is not auto-updated.

Last update: 2024-09-25 18:36:16 UTC


README

警告:此包已被弃用且不再维护。请使用 schmittjoh/JMSJobQueueBundle 包代替。

SimpleJobQueueBundle

Latest Version on Packagist MIT Licensed Build Status Total Downloads

该扩展包可以让您非常容易地在 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)。有关更多信息,请参阅 许可文件