Страница 1 из 1
Script timed out при выполнении скрипта
Добавлено:
Чт фев 18, 2021 10:10 am
kuks
Подскажите, пытаюсь выполнить скрипт по создании личного списка контактов
и постоянно сообщает
[14:05:10] (RunError "contacts"): Время выполнения скрипта: 5318 мс
[14:05:10] (RunError "contacts"): Script timed out
время выполнения скрипта всегда около 5к мс, можно как то увеличить время выполнения скрипта ?
пробовал и с галкой и без на пункте "отключать скрипты из-за превышения времени выполнения"
Re: Script timed out при выполнении скрипта
Добавлено:
Чт фев 18, 2021 11:15 am
Алексей Пикуров
Покажите текст своего скрипта, пожалуйста. Переношу тему в другой раздел.
Re: Script timed out при выполнении скрипта
Добавлено:
Чт фев 18, 2021 11:28 am
kuks
Код: Выделить всёconst
GROUPS = 'RiverPark';
var
sGroups, sCurrentGroup, sUINS, sBackup, s: string;
iUINOwner, iUIN: integer;
begin
sGroups := GROUPS;
sUINS := mGetUsersListInGroupsByNames(GROUPS); // получаем список пользователей группы
sBackup := sUINS; // делаем резервную копию для цикла ниже
while length(sUINS) > 0 do begin // перебираем пользователей группы
iUINOwner := StrToInt(Fetch(sUINS, ','));
mPersonalContactsClear(iUINOwner); // удаляем личный список контактов человека
s := sBackup;
mPersonalContactsAddGroup(iUINOwner, sGroups);
while length(s) > 0 do begin // формируем ему новый личный список контактов
iUIN := StrToInt(Fetch(s, ','));
// если UIN человека не равен нашему собственному - добавляем его в список,
// название группы - название компании, в которой работает человек
// mSendPrivateMessage(28, 25, IntToStr(iUINOwner) + ' > ' + IntToStr(iUIN), 1);
if (iUIN > 1) AND (iUINOwner <> iUIN) then mPersonalContactsAddUser(iUINOwner, iUIN, sGroups);
end;
// mSendPrivateMessage(28, 25, IntToStr(iUINOwner) + ' ! ', 1);
// если пользователь онлайн - обновляем его личный список контактов
if mIsUINOnline(iUINOwner) then mPersonalContactsRefresh(iUINOwner);
end;
end.
Re: Script timed out при выполнении скрипта
Добавлено:
Чт фев 18, 2021 1:03 pm
Алексей Пикуров
Сколько пользователей в группе "RiverPark" ?
P.S. Используйте тег code при вставке исходников в форум.
Re: Script timed out при выполнении скрипта
Добавлено:
Чт фев 18, 2021 1:09 pm
kuks
92
PS: Ok
Re: Script timed out при выполнении скрипта
Добавлено:
Чт фев 18, 2021 1:17 pm
Алексей Пикуров
Код будет очень долго выполняться. 92 * 92 = 8 464 раз только цикл будет основной крутиться, а там обращения к базе данных и рассылки пользователям.
Зачем такая дичь? Почему не воспользоваться общим списком контактов?
Re: Script timed out при выполнении скрипта
Добавлено:
Чт фев 18, 2021 1:20 pm
Алексей Пикуров
Есть функция
SetScriptTimeOut, можете с ней поиграться.
Re: Script timed out при выполнении скрипта
Добавлено:
Чт фев 18, 2021 1:23 pm
kuks
Мы перешли с другого чата, и там была возможность просто отключить группы, чтобы просто всем списком пользователей, вот решили в личный список контактов засунуть просто список.
Re: Script timed out при выполнении скрипта
Добавлено:
Чт фев 18, 2021 1:24 pm
Алексей Пикуров
Не понял вашего ответа.
Почему вы не хотите использовать
один общий список контактов вместо 92 личных, которые абсолютно одинаковы ?
Re: Script timed out при выполнении скрипта
Добавлено:
Чт фев 18, 2021 1:26 pm
kuks
у меня список контактов разбит по подразделениям и в них пользователи, а хочется чтобы было два варианта и просто список и группированный по подразделениям
Re: Script timed out при выполнении скрипта
Добавлено:
Чт фев 18, 2021 1:29 pm
Алексей Пикуров
Я не очень понимаю, зачем
Поясните, возможно, я предложу какое-то удобное для вас решение. Я понимаю, что вы привыкли к какому-то другому продукту с другой идеологией.
Поясните вашу задачу и что вы хотите получить в итоге. Формировать личные списки контактов сплошной простынёй, дублируя общий список контактов, по меньшей мере, странно.
Re: Script timed out при выполнении скрипта
Добавлено:
Чт фев 18, 2021 1:31 pm
kuks
все просто, кому-то удобно чтобы по группам было видно, кому-то общим списком
Re: Script timed out при выполнении скрипта
Добавлено:
Чт фев 18, 2021 1:34 pm
Алексей Пикуров
Фильтр контактов же есть. Неужели удобно глазами пробегать 92 позиции?
Да и всё равно основное общение будет не из контактов, а из диалогов.
Но хозяин — барин
Лупите огромные таймауты или выполняйте скрипты по частям, по 10-20 пользователей, что у вас быстрее отработает.
Re: Script timed out при выполнении скрипта
Добавлено:
Чт фев 18, 2021 2:35 pm
Алексей Пикуров
Я добавлю на будущее специальную функцию, аналогичную mPersonalContactsAddUser, чтобы можно было добавлять в список не по одному юзеру, а сразу блоком, это сильно сэкономит время работы с базой данных.
В вашем конкретном случае вместо 92 итераций будет одна.
Re: Script timed out при выполнении скрипта
Добавлено:
Ср мар 03, 2021 6:36 pm
Алексей Пикуров
Re: Script timed out при выполнении скрипта
Добавлено:
Чт мар 18, 2021 10:49 pm
Алексей Пикуров
Обновились, сделали скрипт с новой функцией?