2012-07-16 168 views
0

我有一个功能my_function(),我需要运行10次。现在,所有10个函数都在同一时间运行(异步?)。在上一次执行完成后,如何执行下一次执行的功能?上一个功能运行完成后执行一个功能

my_function包含CURL调用和读取/写入数据库表。我不知道任何这些与反检查沿着异步运行

$repetitions = 10; 

for($i = 0; $i < $repetitions; $i++) { 
    my_function($param); 
} 
+0

你为什么认为它们是异步运行的? – 2012-07-16 02:16:02

+0

该函数首先在表中找到一行中未通过CURL访问的行,将其URL并将其放入CURL,然后将该行中的列更新为* visited *。但是,如果我按照原始帖子中所显示的那样操作,则同一行将被读取10次。这可能意味着CURL在该行的* not visited *状态被更新为* visited之前运行了10次* – Nyxynyx 2012-07-16 02:21:04

+0

它看起来像该函数正在运行异步;函数本身实际上写成原子? – ernie 2012-07-16 02:35:29

回答

0

你可以使用一个while循环和参数中调用该函数。那么确保你的函数在处理时返回true或false。

$repetitions = 10; 
$count = 0; 

while (my_function($param) && $count < $repetitions) { 
    $count++; 
} 

循环应该阻塞,直到函数返回true,并在计数条件不返回true时退出。

+0

只要执行curl调用异步,并且不会返回true,直到完成确认curl调用。 – 2012-07-16 02:23:42

相关问题