Beanstalkd“延迟工作”不执行

时间:2014-10-24 11:34:54

标签: php laravel laravel-4 beanstalkd

我在Laravel 4设置中运行工作时遇到了一些问题。我有它在Homestead上工作,但它并不适用于生产。我在this tutorial之后使用了Beanstalkd(带有pheanstalk)和Supervisor。

简而言之,我想在调用作业20秒后删除服务器上的图像。

Queue::later(20, 'App\Queues\FileHandler@delete', ['file' => $file]);

$file是我文件的路径。

我的删除方法:

public function delete($job, $data)
{
    var_dump($data);
    if (File::exists($data['file']))
        File::delete($data['file']);

    $job->delete();
}

我还安装了Beanstalkd Console

是的,所以当我点击按钮时,它会触发队列。我可以在控制台上看到控制台现在有正确的$data,并且文件的路径正确。

在控制台上,time-left从20开始倒计时......当它达到0时,它会重置为非常大的数字(18446744073666)。日志中没有错误/输出。

一旦我开始"来自控制台的作业,它执行,我的文件删除,所以我知道代码是合理的。

任何人都有任何建议,它真的很烦我:(

1 个答案:

答案 0 :(得分:4)

版本1.4.6存在延迟作业的问题。如果您在1.4.6上运行,请升级到1.5或1.6