这是我的问题:我有一个应用程序允许用户将他们的数据与社交网络同步。问题是每次同步可能需要长达 10 秒。所以我想在“后台”任务中触发同步,如果可能的话,并行化所有同步。
目前,我的脚本如下所示:
$user = user::login($username, $password);
/* Do some treatments, display the home page */
$user->synchronize();
/* END OF LOGIN SCRIPT */
在我的 user.class.php 中,我有类似的东西
public function synchronize(){
$Networks = socialNetworks::getByUserId($this->userid);
foreach($Networks as $n) $n->synchronize();
}
最后在 socialNetworks.class.php 中,我为每个社交网络(fb、linkedin、google+、...)实现了所有同步脚本。
请注意,我登录时不需要等待同步的结果。
所以我在这里有两个问题:
- 当调用 $user->synchronize(); 登录脚本被阻塞,直到循环结束
- 循环本身很长,我想启动并行“线程”,以使其在调用 synchronize() 方法时更快(我有一些 Ajax 触发此操作)。
你会建议什么来优化这个?
谢谢。