powered by simpleCommunicator - 2.0.30     © 2024 Programmizd 02
Map
Форумы / Informix [игнор отключен] [закрыт для гостей] / Как "заснуть" на время внутри SPL?
7 сообщений из 7, страница 1 из 1
Как "заснуть" на время внутри SPL?
    #38033234
victor16
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Один из способов, как "заснуть" в середине хранимки или даже в клиентской программе,
выполнить функцию integer sysmaster:yieldn() или integer sysmaster:yieldn( integer nseconds ).
Обычно это функция "засыпает" на nseconds, но иногда эта функция может завершится раньше чем задано.
Впрочем, в новых версиях Informix этого никогда не происходит, но даже если и произойдет
функция вернет количество секунд, на которое реально было приостановлено выполнение.

Оригинал статьи: How to sleep (or yield) for a fixed time in a stored procedure

От себя: иногда это реально необходимо, особенно при работе вторичного сервера в режиме UPDATEBLE.
В случае, когда данные обновляются через вторичку иногда необходима небольшая задержка, чтобы эта запись
распространилась по всем нодам кластера через логические журналы и стала доступной другим юзерам.


С уважением,
Виктор
...
Рейтинг: 0 / 0
Как "заснуть" на время внутри SPL?
    #38034256
cpr
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
cpr
Гость
в 7.31 только
system "sleep 1"
...
Рейтинг: 0 / 0
Как "заснуть" на время внутри SPL?
    #38034269
АнатоЛой
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
victor16, в доке про неё ни слова, посему непонятно, когда появилась.
А что у неё внутри в вашей версии сервера?
...
Рейтинг: 0 / 0
Как "заснуть" на время внутри SPL?
    #38034497
victor16
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
АнатоЛой в доке про неё ни слова...
это еще одна из многих недокументированных возможностей :-)


АнатоЛой что у неё внутри ?
У меня получилось создать в базе, отличной от sysmaster :-)
Код: sql
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
create function informix.yieldn(informix.integer)
returns informix.integer
external name '(admin_yieldn)'
language C;

-- Permissions for routine "yieldn"
grant execute on function 'informix'.yieldn(integer) to 'public';

execute function yieldn(10);

(expression)

          10

 1 row(s) retrieved.
...
Рейтинг: 0 / 0
Как "заснуть" на время внутри SPL?
    #38034551
АнатоЛой
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
victor16, спасибо, ничего неожиданно нового :).
...
Рейтинг: 0 / 0
Как "заснуть" на время внутри SPL?
    #38034611
victor16
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
АнатоЛой, спасибо

я и не претендовал на экстраординарность,
надо же хоть как-то придать активность ветке :)
...
Рейтинг: 0 / 0
Как "заснуть" на время внутри SPL?
    #38034838
АнатоЛой
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
victor16, "ничего нового" - это не по поводу вашей информации, это по поводу моих ожиданий, как именно реализована функциональность :)...
...
Рейтинг: 0 / 0
7 сообщений из 7, страница 1 из 1
Форумы / Informix [игнор отключен] [закрыт для гостей] / Как "заснуть" на время внутри SPL?
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]