如何在Coldfusion中上传和调整大量图像时避免请求超时?

时间:2012-09-26 07:38:07

标签: image coldfusion amazon-s3 timeout

我正在运行Coldfusion8并且有一个cfc,它遍历一组数据库记录。

每条记录包含两个字段image pathimage file。我正在为每个图像构建一个路径,将其上传到临时文件夹,调整大小,然后将其存储到S3

根据记录的数量,这可能需要相当长的时间,而且我无法使用更大的图像集成功完成上传周期(最终超时)。

我已将超时阈值设置为5000,但仍然不够。

我可以选择离开的地方,因为在上传到S3之前,我要保留媒体日志以进行检查。这样我可以完成任务,但我需要触发此功能5x才能上传400项。

问题:
有没有办法避免超时而没有设置(在S3情况下)httptimeout到某些50000000?在CFTHREAD中运行它是否有意义,或者如果用户在系统上传时离开导入页面,这会有问题吗?

感谢您的一些见解。

1 个答案:

答案 0 :(得分:3)

您可以使用CFthread执行任务,但请务必锁定范围!否则你可能会多次运行这个内存密集型进程并终止服务器,你只希望这个进程一次运行一次,如果它是如此密集。

你还有其他的选择,如果这不是你的应用程序用户需要运行的东西,而是你的一次性过程,你可以设置一个计划任务,超时运行一晚,当服务器使用率不是很高,这允许您独立于应用程序设置超时,以便应用程序的其余部分不受全局超时更改的影响。

另一个选择是,如果这是用户将半定期进行的事情,则通过电子邮件,日志或其他方式(Ajax或Websockets)推送通知的线程让用户知道他们的任务已完成。这具有可以改变超时的优点,根据在线程生成时动态处理的数据量来计算。但是,如果您不小心,您可以使用许多线程来处理服务器,从而处理大型数据集(加上日志文件读写锁将更难管理)。

我会鼓励你,把它带走,看看哪种解决方案适合你,并发布你的最终解决方案,以便其他人可以看到结果是什么。

希望这有帮助。