Laravel每秒都会运行队列作业

时间:2018-04-18 08:58:32

标签: laravel queue

我创建了一个需要每秒运行的队列作业。我该怎么做?所以我使用artisan命令创建了一个作业,但是作业不是每秒都运行一次。我想我需要重新配置主管的一些配置文件。

2 个答案:

答案 0 :(得分:0)

Laravel文档就是这样的例子。检查https://laravel.com/docs/5.6/queues#supervisor-configuration

默认示例是

[program:laravel-worker]
process_name=%(program_name)s_%(process_num)02d
command=php /var/www/html/yourproject/artisan queue:work sqs --sleep=3 --tries=3
autostart=true
autorestart=true
user=forge
numprocs=8
redirect_stderr=true
stdout_logfile= /var/www/html/yourproject/storage/logs/worker.log

请注意,您需要在config/queues.php中设置工作线连接,然后在主管上,在命令artisan queue:work中指定连接。在我发送的示例中使用sqs但你可以配置其他东西,如redis

答案 1 :(得分:0)

您可以将crontab用于可排队的作业。但Cron只允许至少一分钟。在https://crontab.guru/的帮助下,使用2 * * * * php /var/www/html/your-project-folder/artisan queue:work >> /dev/null 2>&1设置您的日程安排crontab -eserialPort.setSerialPortParams(57600,SerialPort.DATABITS_8,SerialPort.STOPBITS_1,SerialPort.PARITY_NONE);添加到每2分钟运行一次的serialPort.setSerialPortParams(9600,SerialPort.DATABITS_8,SerialPort.STOPBITS_1,SerialPort.PARITY_NONE);

你能做什么,你需要编写一个带有无限循环的shell脚本来运行你的任务,然后每秒睡一觉。