powered by simpleCommunicator - 2.0.51     © 2025 Programmizd 02
Форумы / Firebird, InterBase [игнор отключен] [закрыт для гостей] / Обновление данных по расписанию
27 сообщений из 27, показаны все 2 страниц
Обновление данных по расписанию
    #39944991
alekcvp
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Добрый день.

Имеется некая база данных. И в ней есть данные, которые необходимо обновлять (устанавливать в 0) с некоторой периодичностью (раз в неделю, например). Причём какие-то данные должны обнуляться по понедельниками, а какие-то по пятницам.
Как это правильнее всего реализовать?

Триггером? Отдельным приложением, запускаемым по расписанию операционной системой?
Или, возможно, у FB есть какие-то встроенные решения для таких задач?
...
Рейтинг: 0 / 0
Обновление данных по расписанию
    #39944993
Dimitry Sibiryakov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Отдельным приложением, запускаемым системным шедулером.
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
Обновление данных по расписанию
    #39945068
Гаджимурадов Рустам
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
alekcvp> Как это правильнее всего реализовать?
alekcvp> Или, возможно, у FB есть какие-то встроенные решения для таких задач?

Встроенных задач AFAIK нет (не уверен насчёт 4.0).
Как правильнее - зависит от того, что и когда нужно делать.
Из того, что перечислено - я бы сделал набор хранимых
процедур (или два набора, если только понедельник/пятница),
который запускал бы bat-ником ISQL по заданию в шедуллере ОС.
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
Обновление данных по расписанию
    #39945088
Фотография Старый плюшевый мишка
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Гаджимурадов Рустам
alekcvp> Как это правильнее всего реализовать?
alekcvp> Или, возможно, у FB есть какие-то встроенные решения для таких задач?

Встроенных задач AFAIK нет (не уверен насчёт 4.0).
Как правильнее - зависит от того, что и когда нужно делать.
Из того, что перечислено - я бы сделал набор хранимых
процедур (или два набора, если только понедельник/пятница),
который запускал бы bat-ником ISQL по заданию в шедуллере ОС.


Одну хранимку. Всё ветвление в ней. Состоящую из вызовов сколько надо других хранимок, в которых локализованы вопросы близкой тематики. Просто для понятности где рыть если что-то не срослось.
...
Рейтинг: 0 / 0
Обновление данных по расписанию
    #39945101
Гаджимурадов Рустам
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
СПМ> Одну хранимку. Всё ветвление в ней

Да, как вариант. Точка входа с клиента (ISQL)
должна быть одна, т.е. действия должны быть
"запрограммированы" не в скрипте на клиенте,
а в ХП (одной или нескольких) на сервере.
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
Обновление данных по расписанию
    #39945133
Dimitry Sibiryakov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
А потом долго разгребать когда "чтото пошло не так" потому что этот "универсальный
решатель проблем" кто-то внезапно вызвал не с тем параметром, который был нужен.
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
Обновление данных по расписанию
    #39945142
alekcvp
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Dimitry Sibiryakov,

Ну если точнее, то там есть таблица, в которой в некоторых записях есть поле, содержащее день месяца или день недели, и в этот день надо обнулить другое поле в этой же записи.
...
Рейтинг: 0 / 0
Обновление данных по расписанию
    #39945144
Фотография Старый плюшевый мишка
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Dimitry Sibiryakov

А потом долго разгребать когда "чтото пошло не так" потому что этот "универсальный
решатель проблем" кто-то внезапно вызвал не с тем параметром, который был нужен.


Этот решатель проблем вызывается только кроном. Пользовательские приложения о нём ни сном ни духом. Сотрудник отдела программирования, разумеется, может сделать всё что угодно. Например, delete from rdb$pages. Был у меня один крендель, который каждую строку в программе писал с условием - сделал он ошибку в предыдущей или нет. Недолго был, потому что Hello world он бы закончил аккурат ко второму пришествию Спасителя :)
...
Рейтинг: 0 / 0
Обновление данных по расписанию
    #39945150
fraks
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Dimitry Sibiryakov

А потом долго разгребать когда "чтото пошло не так" потому что этот "универсальный
решатель проблем" кто-то внезапно вызвал не с тем параметром, который был нужен.


А можно вообще без параметров. И крон тут только для того что бы инициировать события извне, коль сам Firebird этого делать не обучен.
Ну а дальше - как Ded написал, в процедуре уже можем смотреть в какую нибудь таблицу в которой прописано когда и что нужно запускать, ну и соответственно, запускаем.

По сути внешний крон создает временнОе событие которое толкает "внутренний крон в базе", который уже дальше разбирается что там положено делать в это время. А это временнОе событие можно вообще создавать каждый час, или каждую минуту, вне зависимости от того с какой частотой должны выполняться собственно задания "внутреннего крона".
Что бы не запустить одно задание несколько раз, в базе можно делать что-то типа семафоров. Или прописывать в таблицу что задание было запущено в тогда-то.
...
Рейтинг: 0 / 0
Обновление данных по расписанию
    #39945180
Ivan_Pisarevsky
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Старый плюшевый мишка
Одну хранимку. Всё ветвление в ней. Состоящую из вызовов сколько надо других хранимок, в которых локализованы вопросы близкой тематики. Просто для понятности где рыть если что-то не срослось.
Предпочитаю табличку со списком вызовов и параметрами в ней же, далее простецкая прожка на фри паскале(ее запускает крон) вычитывает построчно и от требуемого юзера заданного тут же в табличке исполняет строку каждую в отдельном треде с десятисекундной отбивкой между стартами (если отбивку не делать, бывает на втором десятке получал отлуп, что сервак не готов со мной дружить). Ну и в каждой задаче типовая "антинаступалка себе на хвост" имеется.

С одной хранимкой хреново колоть на треды, если задание намбер4 "ушло в себя", то что делать с намбером5 и далее?
...
Рейтинг: 0 / 0
Обновление данных по расписанию
    #39945186
AltHasp
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
alekcvp,

У нас на серваках (RedHat, Windows 200X) уже больше десяти лет юзается crontab+isql. При этом там задач 20 - на все случаи жизни. Если нужно могу вам скинуть рабочий код.
P.S. под винду используем одноименную тулзу (nncron) + IBeScript от Александра. Все работает без нареканий. Удачи !!
...
Рейтинг: 0 / 0
Обновление данных по расписанию
    #39945234
fraks
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
AltHasp
alekcvp,
У нас на серваках (RedHat, Windows 200X) уже больше десяти лет юзается crontab+isql. При этом там задач 20 - на все случаи жизни. Если нужно могу вам скинуть рабочий код.
P.S. под винду используем одноименную тулзу (nncron) + IBeScript от Александра. Все работает без нареканий. Удачи !!


Интересно было бы глянуть :)
...
Рейтинг: 0 / 0
Обновление данных по расписанию
    #39945244
Гаджимурадов Рустам
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
AltHasp> Если нужно могу вам скинуть рабочий код.

Рабочий код чего именно? Выкладывайте сюда -
в будущем, кому понадобится - смогут подсмотреть.
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
Обновление данных по расписанию
    #39945249
alekcvp
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
AltHasp
alekcvp,
P.S. под винду используем одноименную тулзу (nncron) + IBeScript от Александра. Все работает без нареканий. Удачи !!

Спасибо за идею про ibescript )
А в чём преимущества nncron перед стандартным шедулером?
...
Рейтинг: 0 / 0
Обновление данных по расписанию
    #39945260
AltHasp
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
alekcvp,

nnCron - это мощный планировщик/скриптер/менеджер автоматизации.
Он пригодится всем, кто хотел бы автоматизировать большую часть рутинной компьютерной работы.
Он более гибкий, чем системный щедулер с собственным скриптовым языком. https://github.com/nnCron/nnCron
...
Рейтинг: 0 / 0
Обновление данных по расписанию
    #39945355
KreatorXXI
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
AltHasp
alekcvp,

nnCron - это мощный планировщик/скриптер/менеджер автоматизации.


Мы пользуемся XStarter'ом. Тоже продвинутая вещь.
...
Рейтинг: 0 / 0
Обновление данных по расписанию
    #39945527
alekcvp
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Ну я всё-таки думаю, что с задачей раз в сутки запустить батник/екзешник шедулер справится....
...
Рейтинг: 0 / 0
Обновление данных по расписанию
    #39945672
ъъъъъ
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
alekcvp
Добрый день.

Имеется некая база данных. И в ней есть данные, которые необходимо обновлять (устанавливать в 0) с некоторой периодичностью (раз в неделю, например). Причём какие-то данные должны обнуляться по понедельниками, а какие-то по пятницам.
Как это правильнее всего реализовать?

Триггером? Отдельным приложением, запускаемым по расписанию операционной системой?
Или, возможно, у FB есть какие-то встроенные решения для таких задач?

Сделай триггером. Ну пожа-а-алуйста!
...
Рейтинг: 0 / 0
Обновление данных по расписанию
    #39945683
fraks
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
alekcvp
А в чём преимущества nncron перед стандартным шедулером?

Формат файла с заданиями очень похож на формат обычного cron. Это может быть удобным если вы пользуетесь и линуксом тоже.
Легко редактируется. В виндовом планировщике после редактирования каждого задания просит ввести пароль администратора.
Когда я пытался сделать запуск бэкапа каждый час в определенном промежутке рабочего времени - то в nncron это была одна строка, а в виндовом понадобилось сделать целую пачку.

Я использую nnCronLite, он бесплатен.
...
Рейтинг: 0 / 0
Обновление данных по расписанию
    #39947203
alekcvp
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
fraks

Когда я пытался сделать запуск бэкапа каждый час в определенном промежутке рабочего времени - то в nncron это была одна строка, а в виндовом понадобилось сделать целую пачку.

О_о
Начать задание каждый день в 10 часов, повторять каждый час в течении 8 часов?..
...
Рейтинг: 0 / 0
Обновление данных по расписанию
    #39947221
KreatorXXI
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
alekcvp,

Сейчас виндовый планировщик поприличней. Думаю, то что у fraks, тоже одним заданием можно сделать.
...
Рейтинг: 0 / 0
Обновление данных по расписанию
    #39947253
fraks
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
alekcvp
fraks

Когда я пытался сделать запуск бэкапа каждый час в определенном промежутке рабочего времени - то в nncron это была одна строка, а в виндовом понадобилось сделать целую пачку.

О_о
Начать задание каждый день в 10 часов, повторять каждый час в течении 8 часов?..


И вот тут у меня возникает вопрос - а каким образом задать точное время когда запускается задача, а не "повторять каждые 1 час"??
В кроне я что прописал то и будет. И я с точностью до секунды знаю когда и от чего у меня выросла нагрузка. И если мне нужно каждый час запускать еще чего-то, я разношу эти задания по времени на нужное мне количество минут.

В итоге да, можно заставить и штатный планировщик это сделать, и он умеет еще какие-то штуки, что в кроне нету, но оно мне и без надобности, и в кроне удобнее и проще - все видно в одном текстовом файле а не в куче окошек и в куче вкладок.
И при настройке сервера под линухом навыки примерно те же в этом месте требуются.
...
Рейтинг: 0 / 0
Обновление данных по расписанию
    #39947371
a7exander
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Под Win пользуюсь этим:
firebird-a7in-scheduler

В приблуде есть какой то косяк - иногда некоторые таски почему то выполняются чуть позже, но в остальном использую несколько лет без каких либо проблем.
...
Рейтинг: 0 / 0
Обновление данных по расписанию
    #39947911
alekcvp
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
fraks
alekcvp
пропущено...
О_о
Начать задание каждый день в 10 часов, повторять каждый час в течении 8 часов?..

И вот тут у меня возникает вопрос - а каким образом задать точное время когда запускается задача, а не "повторять каждые 1 час"??
Запускать задачу в течении одного периода с разными интервалами - очень специфичная задача.
Так-то этот один час будет считаться от первого запуска, AFAIR.
...
Рейтинг: 0 / 0
Обновление данных по расписанию
    #39947979
KreatorXXI
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
alekcvp
Запускать задачу в течении одного периода с разными интервалами - очень специфичная задача.

Совсем нет. Есть у нас такие задачи. Но пока максимум три времени за сутки. В XStarter'е можно на одну задачу навесить несколько расписаний.
...
Рейтинг: 0 / 0
Обновление данных по расписанию
    #39947996
Dimitry Sibiryakov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
KreatorXXIВ XStarter'е можно на одну задачу навесить несколько расписаний.

Так и в Windows Scheduler - тоже.
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
Обновление данных по расписанию
    #39948029
KreatorXXI
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Dimitry Sibiryakov,

да, согласен. Триггер называется. Непривычно.
...
Рейтинг: 0 / 0
27 сообщений из 27, показаны все 2 страниц
Форумы / Firebird, InterBase [игнор отключен] [закрыт для гостей] / Обновление данных по расписанию
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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