Php 工作太多了,大凤凰城-能做什么?

Php 工作太多了,大凤凰城-能做什么?,php,laravel,queue,laravel-forge,pheanstalk,Php,Laravel,Queue,Laravel Forge,Pheanstalk,关于Laravel4.2和LaravelForge 我犯了一个错误,不小心把一些代码推到了生产服务器上,但是有一个bug,它将一个作业推到了队列中,而没有删除它。 现在我不能再推队列中的任何东西了,我得到: Pheanstalk_异常作业太大:作业数据超过服务器强制限制 我能做什么?这是因为您试图在队列本身中存储太多数据。尽量减少您要推送到队列中的数据 例如,如果队列作业涉及使用模型,只需将模型ID传递到队列中,并作为作业的一部分从数据库中获取模型ID,而不是将整个模型实例传递给队列 如果您使用

关于Laravel4.2和LaravelForge

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

Pheanstalk_异常作业太大:作业数据超过服务器强制限制


我能做什么?

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

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


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

您可以使用Beanstalkd的-z选项增加最大作业大小:

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

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

进行更改后重新启动beanstalkd:
sudo服务beanstalkd重启

应以字节为单位指定大小


我不确定这是否会对性能产生严重影响-到目前为止,这对我来说很好。如果您对性能有任何评论,我将不胜感激。

谢谢,伙计,有什么原因使它过去工作得很好,但现在不再工作了?以前从未出现过此问题,直到我忘记删除作业。从那时起,每当队列有一点数据时,它就会不断崩溃。-我也会尝试传递id来尝试,但这很奇怪…@commandantp抱歉,回复太晚了,刚刚收到这篇文章的通知。您以前存储的数据量没有达到每个任务的数据限制,而现在您尝试推送到队列的数据量达到了限制。这可能是数据库中的更多列,等等。我正在阅读一些代码,想知道为什么我们要传递id而不是模型对象。好吧,这很好地解决了问题!这个答案帮助了我两次……相隔两年。