我的术语可能就在这里,对我来说很光鲜:
我们有一堆用php编码的cli cron样式脚本。
其中一些服务使用ftp将数据发送到远程位置。
建立事物的方式,经常发生的事情是:
a) Script start
b) Connect to ftp @ remote location
c) Send data
d) Close ftp connection
e) Terminate script
f) Return to A, repeat, within a short amount of time and send to the same target, but different data.
问题是由于步骤b导致相当多的开销(读取:减速),首先必须连接到ftp服务器,登录,确保文件夹存在,如果不创建,等等......我知道我知道,做事的正确方法是将这些转移合并为单一推动......但它远比那复杂得多。我从这里简化了大约30-40步。
所以我希望做的就是建立一个这样的系统:
[ CRON CLI SCRIPT ] --->
[ LOCALLY HOSTED SOCKET BASED SERVER THAT KEEPS THE FTP CONNECTIONS OPEN ] --->
[ REMOTE FTP ]
通过上述内容,我们可以保持本地托管的基于套接字的服务器运行,并打开ftp连接,我们将跳过进程中最长的部分,即ftp身份验证相关项。
虽然在PHP中为“一次一个”风格系统设置这个系统是相当简单的,但我以前从未做过的事情是尽可能接近多线程。
在哪里,套接字被打开(例如,127.0.0.1:10000),并且可以进入多个请求。如果需要,会生成“子”,新的ftp连接等等。
任何人都可以在PHP中制作这种多线程,或者,如果还有其他更好的解决方案吗? Perl是一个选择。自从我触及它以来已经过了多年(YEARS ......),但我确信在一些优秀的文档前几天会让我加快速度以实现它。