2

我如何让我的员工要求更多的时间来工作?

我正在使用 pheanstalk 库。工作是对文件的解析,取决于文件可能需要超过 60 秒,默认 ttr。

while( $job = $pheanstalk->watch($tubeName)->reserve() ){ 
        // get the job body
        $parserExec = unserialize( $job->getData() );

        // execute parser - will take more than 1 min most of the time
        exec( $parserExec['command'] ); 

        // rest of the stuff - delete job etc
}

我是排队的新手,我一直在浏览我在网上找到的例子。如果我做错了,请告诉我。我试图获取 jobstats 并根据剩余时间值编写条件,但我无法让它工作。当我在 pheanstalk 中使用 jobStats 函数时,结果是一个私有对象数组。我想要的是让脚本等到执行完成,无论这可能需要多长时间。

4

1 回答 1

3

您有两种选择来延长工作时间。第一个选项是在将作业插入队列时设置您自己的 TTR 值。默认值为 1 分钟,但您可以将其设置为您需要的任何值。这可能是您最好的选择。假设您使用 pheanstalk 来创建您可以做的工作

$pheanstalk->putInTube(tube, data, priority, delay, ttr) or $pheanstalk->put(data, priority, delay, ttr);

您可以调用$pheanstalk->touch($job)它将重置您的 TTR 倒计时,但您仍然会被限制为设置的 TTR 值,在您的情况下为 1 分钟。

于 2015-04-16T16:25:11.463 回答