首页 > 解决方案 > Yii2 等待队列为空

问题描述

我有一个使用 db 驱动程序的 yii 队列。我在控制器中有一个耗时的资源删除操作。它将作业推送到队列并将成功代码返回给调用者。

我想通过删除资源、等待作业完成并确认不再找到已删除的资源来测试此操作。将 sleep() 放在 DELETE 和 GET 之间是可行的,但是我想在发出 GET 请求之前检查队列是否为空的作业。

我尝试了以下操作:从删除端点返回 job_id,并在测试中发送 GET 请求之前调用 waitForQueueToBeEmpty($job_id) 。

public function waitForJobToBeEmpty($job_id) {
    while (!Yii::$app->queue->isDone($job_id));
}

这是行不通的,工作永远不会完成。我让我的工人开始了。我的可能性是什么?先感谢您。

标签: phprestyiiqueuecodeception

解决方案


推荐阅读