vitaly_74
@vitaly_74

Почему код перестает сохранять данные, если убрать sleep(0.5)?

/**действие при определенном статусе*/
    public function action_concrete_status(): void
    {
        $successful = $this->adapter()->successful_transaction(); //узнаем успешна ли транзакция
        $user_id = $this->adapter()->user_id(); //получаем ид пользователя который совершил транзакцию
        if ($successful and $user_id !== 0) { //если удачна и ид не равен 0 то все ок идем дальше
            sleep(0.5); //баг системы.
            /**@var PaymentsMultiViaVtiger $rec */
            $rec = PaymentsMultiViaVtiger::find()
                ->where(['paymentsmulti_id' => $this->adapter()->transaction_id()])
                ->one(); //ищем эту транзакцию в базе данных (и информацию по ней) 
            if ($rec) {//если нашли
                if ($rec->vtiger_record->transaction_approval != 'Approved') { //проверяем зачислялась ли ранее эта транзакция
                    $this->add_to_cash(); //если нет то зачисляем денежные средства на счет.
                }
                $rec->vtiger_record->transaction_approval = 'Approved'; //устанавливаем статус аппрув
                if ($this->adapter()->card_num()) { //если имеем номер карты
                    $rec->vtiger_record->payments_type = $this->adapter()->card_num(); //сохраняем номер карты
                }
                $rec->vtiger_record->amount = $this->adapter()->amount(); //записываем сумму транзакции
                $rec->vtiger_record->updated_time = (new DateTime())->format('Y-m-d H:i:s');//время обновления
                $rec->vtiger_record->save();//сохраняем
                $rec->vtiger_record->refresh();
                sleep(0.5); //баг системы.
            }
        } else {
            $this->external->action_concrete_status(); //если транзакция не успешна или ид пользователя равен 0 то выполняем следующее действие в алгоритме.
        }
    }


проблема в том что если убрать sleep(0.5) то данные не сохраняются.
но если добавить то все работает.
При этом код не фэйлится. и ошибок не возникает.
написал YII т.к. пользуюсь этим фреймворком и сохраняю через его AR (может быть в этом проблема?)
  • Вопрос задан
  • 77 просмотров
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы