我有一个用 PHP 编写的网络应用程序,我使用 Symfony2 作为核心框架。
我需要每 10 分钟左右定期运行数千个小型网络请求,并且我正在尝试找到异步运行这些作业的最佳解决方案,而不会发生冲突或加倍。
目前我有一个非常基本且不优雅的解决方案,其中 cron 作业执行 PHP 命令脚本。该命令同步处理数据库中的每个条目并发送网络请求。当该请求完成(或失败)时,它会继续进行下一个请求。当它遍历所有条目时,它就存在了,可以从 cron 作业中再次执行。
对于重写,我将php-resque和pcntl_fork视为并行运行作业的解决方案,从而显着加快执行速度。我还研究过从 PHP 运行多个非阻塞套接字请求,但到目前为止,我更喜欢隔离作业的简单性。