JOB_TOO_BIG Pheanstalk-可以做些什么


JOB_TOO_BIG Pheanstalk - what can be done?

关于Laravel 4.2&Laravel Forge

我犯了一个错误,不小心把一些代码推到了生产服务器上,但出现了一个bug,它把一个作业推到了队列中,但完成后没有删除。现在我再也不能在队列中推送任何东西了,我得到了:

Phanstalk_Exception JOB_TOO_BIG:作业数据超过服务器强制限制

我能做什么?

您可以使用Beanstalkd的-z选项来增加最大作业大小:http://linux.die.net/man/1/beanstalkd

要在Forge上执行此操作,您需要将SSH连接到服务器并编辑/etc/default/beanstalkd文件。

添加以下行(或取消对现有BEANSTALKD_EXTRA行的注释并对其进行编辑):BEANSTALKD_EXTRA="-z 524280"

更改后重新启动beanstalkd:sudo service beanstalkd restart

大小应以字节为单位指定。

我不确定这是否会对表现产生严重影响——到目前为止,这对我来说很好。我很感激对表现的任何评论。

这是因为您试图在队列本身中存储太多数据。试着减少推送到队列中的数据。

例如,如果队列作业涉及使用模型,只需将模型ID传递到队列中,并作为作业的一部分从数据库中获取它们,而不是将整个模型实例传递给队列

如果你使用的是雄辩的模型,它们会自动以这种方式处理。