我在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)。日志中没有错误/输出。
一旦我开始"来自控制台的作业,它执行,我的文件删除,所以我知道代码是合理的。
任何人都有任何建议,它真的很烦我:(
答案 0 :(得分:4)
版本1.4.6存在延迟作业的问题。如果您在1.4.6上运行,请升级到1.5或1.6