【问题标题】:Pheanstalk touch job to ask more timePheanstalk touch工作要求更多时间
【发布时间】:2015-05-08 08:29:27
【问题描述】:

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

我正在使用 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 函数时,结果是一个私有对象数组。我想要的是让脚本等到执行完成,无论这可能需要多长时间。

【问题讨论】:

    标签: php queue beanstalkd pheanstalk


    【解决方案1】:

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

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

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

    【讨论】:

      猜你喜欢
      • 2017-07-14
      • 2017-09-25
      • 2014-01-23
      • 2015-01-20
      • 1970-01-01
      • 1970-01-01
      • 2011-09-29
      • 2019-08-21
      • 1970-01-01
      相关资源
      最近更新 更多