samynw/pimcore-maintenance-toolbox

该工具包提供了一组用于Pimcore维护的有用工具

安装数: 4,788

依赖项: 0

建议者: 0

安全: 0

星标: 2

关注者: 1

分支: 0

开放问题: 0

类型:pimcore-bundle

v2.0.0 2021-06-08 20:05 UTC

This package is auto-updated.

Last update: 2024-09-09 02:47:10 UTC


README

该工具包提供了一组用于Pimcore维护的有用工具

功能包括以下控制台命令

安装

# 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管理界面中的扩展管理器进行配置。

Configuration form

功能

任务概览

该命令将打印一个包含所有注册的维护任务及其锁定状态的表格。如果可能,还会显示锁的过期时间和任务当前持续时间。

选项

  • --locked: 仅显示被锁定的任务的标志(可选)
  • --sort (-s): 按任务名称或锁定状态对表格进行排序(可选)
    • 支持值:namelock
    • 默认值: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