在Laravel队列中的特定工作之前获取工作数



i提供一些时间成本来计算用户服务器上的服务。我将这些计算工作放在工作队列中。因此,我需要展示有多少个工作来等待用户。虽然我找不到在Laravel队列中特定工作之前找到多少工作的方法。我用beanstalkd作为队列。

如'我如何在豆类管中获取所有作业的列表?'答案, beanstalkd不是数组。它不是为了在内部搜索或计数而设计的,而只是为了获得下一份工作。

如果您想查看队列中有多少个作业,以及它们的位置,请在另一个数据存储中在其他地方进行笔记,例如,Redis或Memcached。将作业放入队列时进行入口,并在从Beanstalkd删除该作业时将其删除。注意 - 此"顺序"或"序列"只有在所有作业都具有相同的优先级时才有效,并且您将两个系统都保持在完美的同步中。

您可以做一些更合理地做的事情是计算队列中的工作总数(或特定的管子/队列),如果工作在应花费的时间上大致相似,请提供估计要在完成新工作(或您刚刚完成的新工作)之前需要多长时间才能完成。

您可以用具有创建时间的特殊工作来计算ETA,并且在运行时,它会将队列(现已创建的时间)中所花费的时间更新为外部商店。

use IlluminateSupportFacadesQueue;
Queue::size($queue_name);

大小方法将返回给定队列的大小。队列:: size()将返回默认队列的大小。

如果您使用的是Redis,则可以使用Laravel Horizon来获得有关队列中发生的事情的更详细的见解。

相关内容

  • 没有找到相关文章

最新更新