Вобщем есть консольное команда Hello там есть action Test. при запуске одновременно несколько таких процессов получается дубли и не работает валидация unique в модели
public function actionTest()
{
$email = 'mail@test.ru';
$doubleModels = Test::findOne(['email' => $email]);
if (!$doubleModels) {
$model = new Test();
$model->email = $email;
$model->save();
}
}
А в модели Test.php есть валидация
/**
* {@inheritdoc}
*/
public function rules()
{
return [
['email', 'unique'],
[['email'], 'string', 'max' => 255],
];
}
для проверки сделал несколько одинаковых крон задач и одновременно запускаю
23 */1 * * * cd /var/www/domain/data/www; /usr/bin/php yii hello/test
23 */1 * * * cd /var/www/domain/data/www; /usr/bin/php yii hello/test
23 */1 * * * cd /var/www/domain/data/www; /usr/bin/php yii hello/test
23 */1 * * * cd /var/www/domain/data/www; /usr/bin/php yii hello/test
Получается 4 записи , хотя в модели есть unique у поле email.
Как исправить такие косяки? чтобы в рабочих скриптах такого не было