我有foreach循环就像上面的foreach我有他们的全部5将运行最低2000环代码需要遍历最小的2000次在PHP的foreach
foreach ($giftCardSchemeData as $keypreload => $preload) {
for ($i=0; $i <$preload['quantity'] ; $i++) {
$cardid = new CarddetailsId($uuidGenerator->generate());
$cardnumber = self::getCardNumber();
$cardexistencetype = ($key == "giftCardSchemeData") ? "Physical" : "E-Card" ;
$giftCardSchemeDataDb = array('preload' => array('value' => $preload['value'], 'expirymonths' => $preload['expiryMonths']));
$otherdata = array('cardnumber' => $cardnumber, 'cardexistencetype' => $cardexistencetype, 'isgiftcard' => true , 'giftcardamount' => $preload['value'],'giftCardSchemeData' => json_encode($giftCardSchemeDataDb), 'expirymonths' => $preload['expiryMonths'], 'isloyaltycard' => false, 'loyaltypoints' => null,'loyaltyCardSchemeData' => null, 'loyaltyRedeemAmount' => null, 'pinnumber' => mt_rand(100000,999999));
$output = array_merge($data, $otherdata);
// var_dump($output);
$carddetailsRepository = $this->get('oloy.carddetails.repository');
$carddetails = $carddetailsRepository->findByCardnumber($cardnumber);
if (!$carddetails) {
$commandBus->dispatch(
new CreateCarddetails($cardid, $output)
);
} else {
self::generateCardFunctionForErrorException($cardid, $output, $commandBus);
}
}
}
。当我每次运行5个foreach时调用函数,然后返回响应。它需要更多的时间,php的最大执行时间发生。 是否有任何方式发送响应,然后我们可以在服务器端运行foreach,而不是创建最大执行时间问题。还需要为foreach进行优化。
而且在symfony中我已经尝试了存在检查尝试捕捉方法在上面的代码返回实体关闭错误。我已经teprorily用dB为单位的生存确认,但需要优化
这是什么情况?这是你一次或很少产生新卡片的事情,还是你为每个访问者所做的事情? – bjelleklang
你试过ini_set('max_execution_time',0);参数或者set_time_limit(0); – AZinkey