我有一个奇怪的问题Laravel队列:工作。在我的crontab中,我设置了一个工作,就像Laravel文档中描述的那样
* * * * * nginx php /path/to/site/artisan schedule:run >> /dev/null 2>&1
在我的应用程序/控制台/Kernel.php我设置这个:
$schedule->command('queue:work')->cron('* * * * *');
在我的正式服php工匠队列中:工作运行几秒钟,然后被“杀死”。这就是我所期望的。
在我的开发盒php artisan队列中:工作永远运行。因此,激活cron作业会产生php进程,直到整个内存被填满。
两个盒子都是CentOS 7.4,生产运行PHP 7.1,开发运行PHP 7.2
正如下面的评论所说,我认为cron命令不是问题所在。
运行表单ssh:
php artisan queue:work
on dev在生产环境中永远运行几秒钟。
您可以尝试运行一次,这将运行一个作业,然后退出该进程。
php artisan队列:工作--once=1
或者在使用Artisan facade的PHP代码中:
Artisan::call('queue:work', [
'--once' => 1, // Do NOT run it as a daemon (not a continuous function)
'--tries' => 1,
'--queue' => 'yourqueue',
'--timeout' => 0
]);
我首先承认轻微的睡眠剥夺。 设置如下所示: APIendpoint(服务器A)接收一个进线量,并将其添加到RabbitMQ服务器(服务器B)上的特定队列中。 RabbitMQ(服务器B)是简单的RabbitMQ队列服务器。不多也不少。 Laravel安装(服务器C)是我们实际的Laravel安装,其目的是在特定队列上查找作业并处理它们。 我们在Laravel安装中有一个RabbitMQ包,它允许通
我试图在容器启动并运行后运行以下命令。 " 然而,这完全破坏了我的容器启动。 我应该如何以Docker的方式来做这件事? 编辑: 使用docker-comact我添加了这一行到我的docker-compose.yml文件 容器启动了,但没有提供任何请求:S 使用此选项: 启动后容器停止运行 最终解决方案 所以最后我想,也许负责交付应用程序的服务器不应该是运行队列的服务器。 因此,我启动了同一doc
我们有laravel 5.6和很多队列。 在生产中,我有一个主管负责处理这些队列。 在localhost上,我使用“sync”选项同步/直接处理所有队列。 我想知道是否有可能在localhost上有不同的行为: 我想分派作业,然后直接通过php exec运行以下命令: 这应该在后台运行队列工作程序一次。 但是什么都没发生。工匠在这种情况下工作吗?
我正在使用带有beanstalkd的Laravel4.1在后台运行一些密集的Photoshop PSD文件处理。我还安装了phpBeanstalkdAdmin来监视队列中发生的事情。 正在处理的作业大约需要7-10分钟,但我注意到我的一些作业会重新启动,即使它们仍在忙于运行。 留意phpBeanstalkadmin,我可以看到工作被埋葬时排队:听拿起工作,但过了一会儿,它被踢了回来,准备好了。 要
rabbitMQ 工作队列 轮询分发 >[danger] 简单队列是一对一的关系,一个生成者对应一个消费者,实际开发中,一般消费者是以业务相结合的,需要时间去处理业务,如果只有一个消费者,那么生产者就会积压很多消息,消费不出去 代码演示: 'use strict'; const Controller = require('egg').Controller; /** * 队列一对多演示 * 生产
工作队列接口 结构体 struct rt_workqueue 工作队列控制块 更多... struct rt_work 工作回调函数信息 更多... 函数 struct rt_workqueue * rt_workqueue_create (const char *name, rt_uint16_t stack_size, rt_uint8_t priority) 创