beanstalkd 默认的 wal 目录

beanstalkd default wal directory

我们正在使用 Laravel 和 BeansTalkD 在我们的应用程序中排队。现在我被困在这个命令上:

php artisan queue:listen

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

问题是我 运行 beanstalkd 使用这个命令:

beanstalkd -z 1024*1024

其中没有指定wal目录。

上周我一直在搜索如何清理 beantalk 工作队列,但一无所获。

小贴士

如果您没有使用 -b 选项,那么重新启动 beanstalkd(同样没有 -b)应该会有帮助。

现在如果由于某种原因重新启动对你不起作用并且你正在使用 Laravel 5.x 你可以考虑安装 artisan-beans 包并使用 php artisan beans:purge 命令清理队列。


更新: 因为你在 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
    

除了接受的答案之外,我找到了另一个解决方案,即停止 (CTRL+C) 命令:

beanstalkd -z 1048576

并使用 -b 选项再次启动命令:

beanstalkd -z 1048576 -b ~/btd_data

这也解决了问题