带有 Laravel 的 PHP 无限脚本

标签 php laravel

我有一个用户表,我需要不断上传,所以一旦更新,我想直接重新启动命令。

实际上,我使用的是一个 cron,它在 Laravel 中每分钟启动一次 ($schedule->command('update:users')->everyMinute();),但我如果工作快于一分钟,我会浪费一些时间,如果超过一分钟,我的服务器就会过载。

我在想也许可以使用一个队列,一旦脚本终止,就重新启动它自己,就像这样:

// Do My stuff
Queue::push(new UpdateUsers($));

但如果脚本崩溃,它不会自行重新加载,我需要至少启动一次。我知道我可以使用 pcntl_fork 函数,但我想使用 Laravel 的交 key 函数。我该怎么办?

最佳答案

我建议运行 CLI 命令, 在命令中放置一个

while (true)

循环所以它会永远运行。创建此脚本后,您可以使用 supervisord 运行它

此服务运行您告诉他的命令,失败时会自动重新启动。请注意,在 X 次失败后它将停止,这取决于您如何配置它。

配置文件示例:

/etc/supervisord/conf.d/my_infinite_script.conf

内容可能是:

[program:laravel_queue]
command=php artisan your_command:here
directory=/path/to/laravel
autostart=true
autorestart=true
stderr_logfile=/var/log/your_command.err.log
stdout_logfile=/var/log/your_command.out.log

关于带有 Laravel 的 PHP 无限脚本,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35135187/

相关文章:

php - Codeigniter 查询结果返回带有 setter 的自定义结果对象

angularjs - Laravel Excel 仅提供 CORS 错误开发服务器

laravel - Laravel 5.3 中的批量插入

javascript - 如何在ajax上重新加载数据表并触发新的分页

php - 1215 无法添加外键

php - TextArea 中的 Laravel 值

php - 使用 PHPWord 替换 Word 文档中链接中的占位符

php - 在 Dreamweaver CS5 中调试 PHP

php - Laravel 同步多对多错误

php - 无法计算出 Sendgrid SMTP (Laravel) 的用户名和密码