Laravel中的手工艺命令超时

问题描述

我想利用Laravels Artisan Commands与Laravel构建一个纯CLI应用程序。

现在,我想知道这些命令是否像通过CLI调用的其他任何PHP脚本一样。 通常的行为是通过CLI调用PHP脚本可能永远运行。这是我对Artisan Commands想要的确切行为。

问题是:

  • 通过PHP artisan <command-category>:<command>调用的命令是否超时?
  • 从Artisan Command触发的作业是否有超时(与同步/数据库模式相比)?
  • 如果命令超时,从CLI调用PHP脚本中调用命令时是否也超时?

我有一个FTP服务器,每天可以接收几次上传。这些上传文件是zip存档,大小最大为3GB。我要构建的是脚本,是遍历所有档案并执行以下操作:

  1. 将档案备份到s3兼容存储系统(DigitalOcean)
  2. 在ftp服务器上提取档案
  3. 将这些文件复制到另一个s3兼容的存储系统上
  4. 删除zip文件的本地副本

解决方法

是否通过php artisan调用了一个命令:超时了?

Laravel不会默认处理超时,因为这些只是基于普通的php进程。因此,没有办法杀死这些漫长的工艺过程。

可能造成干扰的唯一限制是如上所述的php服务器。 例如,您的max_execution_time中的php.ini设置可能会造成干扰。

由于您正在传输文件,所以我想像upload_max_filesize这样的设置可能会造成干扰。这,但是我不确定。

从Artisan Command触发的作业是否有超时(与同步/数据库模式相比)?

所有artisan命令基本上都是php进程。与第一个问题相同的答案也适用于这里。

如果命令超时,从CLI调用的php脚本中调用命令时是否也超时?

是的