我已经在 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/