samynw / pimcore-maintenance-toolbox
该工具包提供了一组用于Pimcore维护的有用工具
v2.0.0
2021-06-08 20:05 UTC
Requires
- pimcore/pimcore: ^10.0.0
Requires (Dev)
- mockery/mockery: 1.4.x-dev
- symfony/phpunit-bridge: 6.0.x-dev
This package is auto-updated.
Last update: 2024-09-09 02:47:10 UTC
README
该工具包提供了一组用于Pimcore维护的有用工具
功能包括以下控制台命令
- maintenance:list: 获取维护任务的列表以及它们是否被锁定
- maintenance:release-lock: 手动解锁一个维护任务(例如,在进程被杀死后)
安装
# Add package to composer dependencies composer require samynw/pimcore-maintenance-toolbox # Enable and install bundle php bin/console pimcore:bundle:enable MaintenanceToolboxBundle php bin/console pimcore:bundle:install MaintenanceToolboxBundle
配置
该插件可以通过Pimcore管理界面中的扩展管理器进行配置。
功能
任务概览
该命令将打印一个包含所有注册的维护任务及其锁定状态的表格。如果可能,还会显示锁的过期时间和任务当前持续时间。
选项
--locked
: 仅显示被锁定的任务的标志(可选)--sort
(-s
): 按任务名称或锁定状态对表格进行排序(可选)- 支持值:
name
,lock
- 默认值:
name
- 支持值:
示例完整列表
$ php bin/console maintenance:list +----------------------------------+--------+---------------------+-----------+ | Maintenance task | Locked | Lock expiration | Duration | +----------------------------------+--------+---------------------+-----------+ | archiveLogEntries | ❌ | | | | asset_document_convert | ❌ | | | | checkerrorlogsdb | ✔ | 2020-11-14 11:22:55 | 00h10m13s | | cleanupBrickTables | ❌ | | | | ... | ... | ... | ... | | scheduledtasks | ❌ | | | | tmpstorecleanup | ❌ | | | | versioncleanup | ✔ | 2020-11-14 11:16:25 | 00h16m43s | | versioncompress | ❌ | | | | VersionsCleanupStackTraceDb | ❌ | | | +----------------------------------+--------+---------------------+-----------+
(注意:为了可读性,示例输出被缩短了)
仅限于锁定任务的列表示例
$ php bin/console maintenance:list --locked +------------------+--------+---------------------+-----------+ | Maintenance task | Locked | Lock expiration | Duration | +------------------+--------+---------------------+-----------+ | checkerrorlogsdb | ✔ | 2020-11-14 11:22:55 | 00h12m20s | | versioncleanup | ✔ | 2020-11-14 11:16:25 | 00h18m50s | +------------------+--------+---------------------+-----------+
按持续时间排序的列表示例
$ php bin/console maintenance:list --sort=lock +----------------------------------+--------+---------------------+-----------+ | Maintenance task | Locked | Lock expiration | Duration | +----------------------------------+--------+---------------------+-----------+ | versioncleanup | ✔ | 2020-11-14 11:16:25 | 00h20m01s | | checkerrorlogsdb | ✔ | 2020-11-14 11:22:55 | 00h13m31s | | archiveLogEntries | ❌ | | | | asset_document_convert | ❌ | | | | ... | ❌ | | | | versioncompress | ❌ | | | | VersionsCleanupStackTraceDb | ❌ | | | +----------------------------------+--------+---------------------+-----------+
(注意:为了可读性,示例输出被缩短了)
解锁维护任务
该插件包括一个命令来释放维护任务的锁。
然而,锁被设置为防止并发执行,因此不应手动删除。然而,在某些情况下,这可能很有用,例如,如果维护进程被杀死,并且锁一直持续到过期键结束。
为了防止无谓地解锁,采取了以下措施
- 功能默认禁用(在模块配置中启用)
- 用户首先会收到警告,并需要确认操作
手动释放作业锁的示例
$ php bin/console maintenance:release-lock versioncleanup ! ! [CAUTION] THIS MIGHT BE AN UNSAFE OPERATION. ! ! [NOTE] You've requested to remove the lock from a maintenance job. ! In normal circumstances this should never be done manually. ! Removing a job lock, might lead to concurring processes and unexpected behaviour. ! Do not continue unless you fully comprehend the possible consequences of this action. Are you sure you want to release the job lock for "versioncleanup"? (y/n) (yes/no) [no]: > yes [OK] Job "versioncleanup" has been unlocked