这更多的是关于最佳实践的问题。我的服务器允许用户使用FontForge将字体从一种格式转换为另一种格式。为了防止冲突,在任何给定的实例中只允许进行一次字体转换。如何在用户取消脚本时处理废弃的PID文件?
当一个用户启动转换时,会创建一个用作锁的PID文件。如果另一个用户在第一次转换仍在运行时尝试启动转换,则该脚本将暂停一会儿并再次检查PID文件。
重复此操作,直到第一个进程删除PID文件,从而解锁对FontForge的访问。但是,如果第一个用户在完成脚本之前取消脚本(通过按浏览器上的停止按钮),则该脚本将在移除PID文件之前退出。第二个用户将永远无法继续。
处理这个问题的最佳方法是什么?
相关:http://stackoverflow.com/questions/2652082/can-a-http-server-detect-that-a-client-has-cancelled-their-request –
这可能是太有用:连接处理](http://php.net/manual/en/features.connection-handling.php) –