irstea/deployer-worker-recipe

用于部署工作者的配方。

安装次数: 4,365

依赖项: 0

建议者: 0

安全: 0

类型:deployer-recipe

1.0.5 2021-01-18 16:18 UTC

This package is auto-updated.

Last update: 2024-09-19 00:19:06 UTC


README

使用Deployer管理和服务器“worker”的“食谱”。

安装

composer require --dev irstea/deployer-worker-recipe

使用

需要将食谱包含在项目的deploy.php文件中,使用require指令。

<?php declare(strict_types=1);

namespace Deployer;

// Inclut la recette deployer standard pour Symfony
require 'recipe/symfony.php';

// Les systèmes cibles utilisent Systemd
require __DIR__ . '/vendor/irstea/deployer-worker-recipe/recipe/systemd.php';

// Nous voulons installer un worker symfony/messenger
require __DIR__ . '/vendor/irstea/deployer-worker-recipe/recipe/messenger.php';

// ... snip ! snip ! ...

// Arrête le worker avant de migrer la base de données
before('database:migrate', 'worker:stop');

命令

此包定义了在worker:命名空间下部署的命令。

与所有deployer命令一样,它以部署环境名称为第一个参数。

示例

$ vendor/bin/dep worker:status test
➤ Executing task worker:status
deepomics-worker is failed

✔ Ok
命令描述before/after
worker:start启动工作者-
worker:stop停止工作者;如果未运行,则不执行任何操作-
worker:status显示工作者的状态-
worker:restart重新启动工作者-
worker:service:generate生成服务配置after deploy:vendors-
worker:service:reload重新生成服务配置然后重新加载-
worker:reset停止工作者,更新服务,然后重新启动after deploy:symlinkrollbackdeploy:failed

参数

所有参数都以worker.开头。它们可以在您的deploy.php文件中使用set();覆盖。

示例

<?php
// ...
set('worker.require_services', 'postgresql.service elasticsearch.service');
// ...
参数描述默认值示例
通用参数
worker.description服务的描述{{ application }} workermonapp worker
worker.user执行工作者的Unix用户{{ http_user }}www-data
worker.group执行工作者的Unix组worker.user的主要组www-data
worker.working_directory工作者的工作路径{{ release_path }}/var/www/monapp/release/25
worker.command_line工作者的完整命令行{{ bin/console }} {{ console_options }} --ansi --verbose {{ worker.console_command }}bin/console --no-interaction --env=prod --no-debug --ansi --verbose ...
systemd特有的参数
worker.require_services工作者需要的其他服务postgresql.servicepostgresql.service elasticsearch.service
worker.use_sudo使用sudo调用systemctl如果不是root用户则使用是true
worker.sudo_pathsudo命令的确切路径自动确定/usr/bin/sudo
worker.sudosudo命令{{ worker.sudo_path }} 或空,根据 worker.use_sudo/usr/bin/sudo
worker.systemctl_pathsystemctl命令的确切路径自动确定/bin/systemctl
worker.systemctlsystemctl命令{{ worker.sudo }}{{ worker.systemctl_path }}/usr/bin/sudo /bin/systemctl
worker.service.template服务文件模板的路径包中的template/worker.service.tpl/home/user/src/monapp/vendor/irstea/deployer-worker-recipe/template/worker.service.tpl
worker.service.parsed变量展开后的模板内容动态太长了,这里无法显示
worker.service.name工作者服务的名称{{ application }}-workermonapp-worker
worker.service.unit工作者单位的名称{{ worker.service.name }}.servicemonapp-worker.service
worker.service.path服务文件的路径{{ release_path}}/{{ bin_dir }}/{{ worker.service.unit }}/var/www/monapp/release/25/bin/monapp-worker.service
symfony/messenger特有的参数
worker.message_limit重启前可处理的最大消息数量5025
worker.time_limit重启前的最大时间(秒)36001800
worker.memory_limit需要重启的内存使用量2G512M
worker.receivers要处理的队列列表asyncasync_urgent async
worker.console_command要执行的Symfony命令`messenger:consume --limit={{ worker.message_limit }} --time-limit={{ worker.time_limit }} --memory-limit={{ worker.memory_limit }} {{ worker.receivers }}|messenger:consume --limit=25 --time-limit=1800 --memory-limit=2G async_urgent async`