2015-11-16 73 views
0

我们正在使用Laravel和BeansTalkD在我们的应用程序中排队。现在,我被困在一个点上,这个命令:beanstalkd默认wal目录

php artisan queue:listen

不断找工作,换句话说,有很多的工作,我不知道如何清理队列。

而问题是,我用这个命令跑beanstalkd:

beanstalkd -z 1024*1024

不指定wal目录。

我一直在寻找整个上周关于如何清理豆茎工作队列,但什么都没发现。

提示

  • 我在Mac OS X上运行的优胜美地这个。
  • 重新启动BeansTalkD服务没有解决它
  • 我不存储作业在DB so flush命令不是一个。 (我不知道Laravel是否和我一样知道,但我不这么认为)
  • 我正在删除作业,但完成后应用会生成大量作业。
+0

你的意思是作业没有处理? – Bogdan

+0

“-z”和WAL目录如何连接? '-z'设置以字节为单位的最大作业大小,另一方面'-b'允许你指定WAL目录。 – peterm

+0

你只是想从队列中删除所有的工作吗?或者是其他东西? – peterm

回答

1

如果你没有使用-b选项,然后重新启动beanstalkd(同样没有-b)应该有所帮助。

现在如果重新启动因某种原因不为你工作,你正在使用Laravel 5.x的,你可以考虑安装artisan-beans包,然后用php artisan beans:purge命令来清理你的队列中。


UPDATE:既然你在Laravel 4.2,你可以

  1. 安装免费的依赖,CLI工具beanstool。以下是如何在OS X上安装V2.0

    wget https://github.com/tyba/beanstool/releases/download/v0.2.0/beanstool_v0.2.0_darwin_amd64.tar.gz 
    tar -xvzf beanstool_v0.2.0_darwin_amd64.tar.gz 
    cp beanstool_v0.2.0_darwin_amd64/beanstool /usr/local/bin/ 
    
  2. ,然后在bash

    for i in {1..N}; do beanstool delete -t default --state=ready; done 
    

    变化N运行这个你想一次和default删除对名称的作业数你的队列(管)。

    如果你想知道你现在有多少工作必须在队列运行

    beanstool stats 
    
+0

我正在使用Laravel 4.2 –

+0

它可以在v4.2中使用吗? –

+0

我试过了,它不适用于laravel 4 –

0

除了公认的答案我发现了另一个解决方案是停止(CTRL + C)命令:

beanstalkd -z 1048576

,并再次启动该命令与-b选项:

beanstalkd -z 1048576 -b ~/btd_data

这也解决了这个问题