php - 在 laravel 中删除排队的作业

标签 php laravel beanstalkd

我已经在 Laravel 的队列中添加了一些作业。但是,我忘记将 $job->delete() 放入函数中,我的函数出现错误。这意味着工作永远不会结束。它不断被替换到队列中,并在我的日志文件中不断出错。如何从命令行删除它?

我正在使用 beanstalkd 进行排队。

最佳答案

我使用的是 Redis 而不是 Beanstalkd,但这两者应该是一样的。重启 Redis 并不能解决问题。我查看了 Laravel 4.2 API Docs 中的 RedisQueues并发现:

public Job|null pop(string $queue = null)
  //Pop the next job off of the queue.

如果您查看 BeanstalkedQueue,这也是一样的。

我将其放入 dd* 内的 app/routes.php 中,加载该页面,瞧。

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

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

队列被拉出栈。我希望看到一个更简洁的解决方案,但这不止一次对我有用。

*dd($var) = Laravel 的 die 和 dump 函数 = die(var_dump($var))

编辑 1: 对于 Redis

以上显然不是最好的解决方案,所以这里有一个更好的方法。当心!

FLUSHDB - Delete all the keys of the currently selected DB. This command never fails.

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

$ redis-cli
127.0.0.1:6379> FLUSHDB
OK
127.0.0.1:6379> exit

关于php - 在 laravel 中删除排队的作业,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20498524/

相关文章:

java - Android向php发送数据并接收问题nullpointerException

php - count(array)返回1,但数组为空

php - 输出对评论的回复

php - 将 [用户名] 添加到可填充属性以允许在 [应用程序/帖子] 上进行批量分配

php - phalcon beanstalk队列的select和watch方法有什么区别

javascript - 使用 jquery 的 $.post 的非常简单的代码显示整个代码而不是 echo

php - 全局连接变量或每次都是新的

php - Laravel UNION ALL 不使用 where 语句

ruby - 上帝启动了太多进程

Laravel 5.4 事件触发,但未广播