删除laravel中的排队作业

Cla*_*ire 16 php beanstalkd laravel

我已将一些作业添加到laravel中的队列中.但是,我忘$job->delete()了输入函数,我的函数也有错误.这意味着工作永无止境.它不断进入它并在我的日志文件中保持错误.如何从命令行中删除它?

我正在使用beanstalkf进行排队.

Dut*_*IFF 25

我使用的是Redis而不是Beanstalkd,但两者都应该相同.重新启动Redis无法解决问题.我查看RedisQueuesLaravel 4.2 API文档,发现:

public Job|null pop(string $queue = null)
  //Pop the next job off of the queue.
Run Code Online (Sandbox Code Playgroud)

如果你看一下,这是一样的BeanstalkedQueue.

我把它扔进app/routes.phpdd*里面,加载那个页面然后瞧.

Route::get('/', function() {
  dd(Queue::pop());
  #return View::make('hello');
});
Run Code Online (Sandbox Code Playgroud)

注意:每个队列重新加载一次页面.

队列从堆栈中拉出.我希望看到一个更清洁的解决方案,但这对我不止一次.

*dd($ var)= Laravel's die和dump function = die(var_dump($ var))

编辑1: 对于Redis

以上显然不是最好的解决方案,所以这里有更好的方法.小心!

FLUSHDB - 删除当前所选DB的所有键.此命令永远不会失败.

对于Redis使用FLUSHDB.这将刷新Redis数据库而不是Laravel的数据库.在终端:

$ redis-cli
127.0.0.1:6379> FLUSHDB
OK
127.0.0.1:6379> exit
Run Code Online (Sandbox Code Playgroud)

  • +1 FLUSHDB是唯一对我有用的东西.如果我拼写错误的方法调用,一旦我纠正它,它只是不会停止调用不正确的.发现这个,它的工作:) (4认同)

Jer*_*ale 25

重启Beanstalk.在Ubuntu上:

sudo service beanstalkd restart
Run Code Online (Sandbox Code Playgroud)

  • 这只适用于beanstalkd服务在内存中运行,但如果`wal`目录在磁盘上,那么即使重新启动beanstalkd服务也行不通.另一方面,即使这在命令行中有效,在代码中实现也会太难看 (2认同)