Добро пожаловать в форум, Guest  >>   Войти | Регистрация | Поиск | Правила | В избранное | Подписаться
Все форумы / Программирование Новый топик    Ответить
 Как сделать паузу между автоматическим срабатыванием соседних SQL-запросов  [new]
Vbifyz
Member

Откуда:
Сообщений: 26
Здравствуйте.
Есть несколько SQL-запросов к БД, которые запускаются автоматически через Cron, и выполняются последовательно (или одновременно?), что дает определенну нагрузку на сервер, которую хотелось бы уменьшить.
Подскажите, можно ли в в приведенной ниже конструкции сделать так, чтобы между срабатыванием соседних команд была пауза на заданное время (например в 60 сек)? Что добавить в данный код?

П.С. Теоретически можно было бы каждую команду разнести в разные кроны, но не хотелось бы.

* Выполнение 7 SQL-запросов
*/
public function actionCron5() {
$database = Yii::app()->db->createCommand("SELECT DATABASE()")->queryScalar();

$sql = 'запрос 1;
';
$result = Yii::app()->db->createCommand($sql)->execute();

$sql = 'запрос 2;
';
$result = Yii::app()->db->createCommand($sql)->execute();

$sql = 'запрос 3;
';
$result = Yii::app()->db->createCommand($sql)->execute();

$sql = 'запрос 4;
';
$result = Yii::app()->db->createCommand($sql)->execute();

и так далее

}
9 сен 19, 06:28    [21966486]     Ответить | Цитировать Сообщить модератору
 Re: Как сделать паузу между автоматическим срабатыванием соседних SQL-запросов  [new]
Dima T
Member

Откуда:
Сообщений: 14109
На каком языке скрипт?
9 сен 19, 07:09    [21966491]     Ответить | Цитировать Сообщить модератору
 Re: Как сделать паузу между автоматическим срабатыванием соседних SQL-запросов  [new]
Vbifyz
Member

Откуда:
Сообщений: 26
PHP
9 сен 19, 07:15    [21966495]     Ответить | Цитировать Сообщить модератору
 Re: Как сделать паузу между автоматическим срабатыванием соседних SQL-запросов  [new]
Dima T
Member

Откуда:
Сообщений: 14109
sleep()
9 сен 19, 07:23    [21966497]     Ответить | Цитировать Сообщить модератору
 Re: Как сделать паузу между автоматическим срабатыванием соседних SQL-запросов  [new]
Vbifyz
Member

Откуда:
Сообщений: 26
Уточните пожалуйста, в моем случае код будет выглядеть так?:
9 сен 19, 08:15    [21966514]     Ответить | Цитировать Сообщить модератору
 Re: Как сделать паузу между автоматическим срабатыванием соседних SQL-запросов  [new]
Vbifyz
Member

Откуда:
Сообщений: 26
* Выполнение 7 SQL-запросов
*/
public function actionCron5() {
$database = Yii::app()->db->createCommand("SELECT DATABASE()")->queryScalar();

$sql = 'запрос 1;
';
$result = Yii::app()->db->createCommand($sql)->execute();

sleep(10);

$sql = 'запрос 2;
';
$result = Yii::app()->db->createCommand($sql)->execute();

sleep(10);

$sql = 'запрос 3;
';
$result = Yii::app()->db->createCommand($sql)->execute();

sleep(10);

$sql = 'запрос 4;
';
$result = Yii::app()->db->createCommand($sql)->execute();

sleep(10);

и так далее

}
9 сен 19, 08:17    [21966517]     Ответить | Цитировать Сообщить модератору
 Re: Как сделать паузу между автоматическим срабатыванием соседних SQL-запросов  [new]
Vbifyz
Member

Откуда:
Сообщений: 26
или так:?
9 сен 19, 08:20    [21966518]     Ответить | Цитировать Сообщить модератору
 Re: Как сделать паузу между автоматическим срабатыванием соседних SQL-запросов  [new]
Vbifyz
Member

Откуда:
Сообщений: 26
$sql = 'запрос 1;
';
$result = Yii::app()->db->createCommand($sql)->execute();

sleep ( int $60 ) : int

$sql = 'запрос 2;
';
$result = Yii::app()->db->createCommand($sql)->execute();

sleep ( int $60 ) : int

$sql = 'запрос 3;
';
$result = Yii::app()->db->createCommand($sql)->execute();

sleep ( int $60 ) : int

$sql = 'запрос 4;
';
$result = Yii::app()->db->createCommand($sql)->execute();
9 сен 19, 08:21    [21966520]     Ответить | Цитировать Сообщить модератору
 Re: Как сделать паузу между автоматическим срабатыванием соседних SQL-запросов  [new]
Dima T
Member

Откуда:
Сообщений: 14109
Vbifyz
Уточните пожалуйста, в моем случае код будет выглядеть так?:

По ссылке примеры есть.

$sql = 'запрос 1;
';
$result = Yii::app()->db->createCommand($sql)->execute();

sleep(10);

...
9 сен 19, 08:47    [21966534]     Ответить | Цитировать Сообщить модератору
 Re: Как сделать паузу между автоматическим срабатыванием соседних SQL-запросов  [new]
Akina
Member

Откуда: Зеленоград, Москва, Россия
Сообщений: 19592
Vbifyz
чтобы между срабатыванием соседних команд была пауза на заданное время (например в 60 сек)?
Поневоле возникает вопрос - ЗАЧЕМ? Если без паузы возникают какие-то проблемы выполнения последующих запросов, и пауза из снимает - то решение с паузами - это костыль, который непременно когда-нибудь подломится. Ищите ПРИЧИНУ, и удаляйте именно её.
9 сен 19, 09:04    [21966546]     Ответить | Цитировать Сообщить модератору
 Re: Как сделать паузу между автоматическим срабатыванием соседних SQL-запросов  [new]
Vbifyz
Member

Откуда:
Сообщений: 26
автор
$sql = 'запрос 1;
';
$result = Yii::app()->db->createCommand($sql)->execute();

sleep(10);

...


Спасибо. Помогло, работает.
9 сен 19, 09:41    [21966572]     Ответить | Цитировать Сообщить модератору
Все форумы / Программирование Ответить