CLI 与调度器 · 第 9 题,共 12 题

一个导入命令由 cron 每分钟启动一次,但一次运行可能耗时更长。两次运行绝不能同时进行。如何用 TYPO3 自带手段防止这种情况?

有 1 个正确答案。 中等

显示答案

答案

  • D 通过 LockFactory 创建带 LOCK_CAPABILITY_EXCLUSIVE | LOCK_CAPABILITY_NOBLOCK 的锁,尝试 acquire(),失败时立即退出

解析

LockFactory 会选择合适的加锁策略(文件、信号量……)。使用 NOBLOCK 时,acquire() 会立即返回而不是等待,因此第二次运行可以干净地退出。结束时用 release() 释放锁。在 registry 中自制的标记在崩溃后会残留,而且不是原子操作。对于调度器任务,另外还有关于并行执行的设置。

认证与考试

下一个考试是什么?

已有 19 项考试可以练习,21 项正在投票中。查看所有认证及官方信息,投出你的一票,或推荐你的考试。

查看全部认证