系统s3cmd同步php超时


system s3cmd sync php timeout

我正试图通过php网页使用系统命令在远程服务器和amazons3之间同步文件夹。网页可以选择浏览需要在服务器和s3 之间同步的文件夹

s3命令是下面的一个

system('s3cmd sync'.$fldr_name.'.BUCKET_name.'--config="'.AWS_CONF_FILE.'"',$return);

对于小文件夹,它是有效的。但我正在同步大文件网页连接正在重置。

我在我的php脚本上尝试过这个

ignore_user_abort(true);

但运气不好。有什么方法可以使网页长期可执行吗?

谢谢,

您使用的方法并不理想。当服务器长时间处于打开状态时,与服务器的连接可能会因多种原因而重置,其中一些原因超出了您的控制范围。

我建议你采取另一种方法:

在服务器上对所有这些同步任务进行排队,并使用后台运行的服务(例如cron作业或其他)并行执行其中的几个任务。

当其中一个同步完成时,您将在数据库中记录它的成功/失败。

然后,在UI中,您定期提取第二个服务(通过定期执行的AJAX调用),该服务检查数据库并返回您存储的挂起/成功/失败标志。如果请求仍处于挂起状态,您只需稍后重新检查即可。