|
Обновление данных по расписанию
|
|||
---|---|---|---|
#18+
Добрый день. Имеется некая база данных. И в ней есть данные, которые необходимо обновлять (устанавливать в 0) с некоторой периодичностью (раз в неделю, например). Причём какие-то данные должны обнуляться по понедельниками, а какие-то по пятницам. Как это правильнее всего реализовать? Триггером? Отдельным приложением, запускаемым по расписанию операционной системой? Или, возможно, у FB есть какие-то встроенные решения для таких задач? ... |
|||
:
Нравится:
Не нравится:
|
|||
08.04.2020, 18:38 |
|
Обновление данных по расписанию
|
|||
---|---|---|---|
#18+
Отдельным приложением, запускаемым системным шедулером. Posted via ActualForum NNTP Server 1.5 ... |
|||
:
Нравится:
Не нравится:
|
|||
08.04.2020, 18:42 |
|
Обновление данных по расписанию
|
|||
---|---|---|---|
#18+
alekcvp> Как это правильнее всего реализовать? alekcvp> Или, возможно, у FB есть какие-то встроенные решения для таких задач? Встроенных задач AFAIK нет (не уверен насчёт 4.0). Как правильнее - зависит от того, что и когда нужно делать. Из того, что перечислено - я бы сделал набор хранимых процедур (или два набора, если только понедельник/пятница), который запускал бы bat-ником ISQL по заданию в шедуллере ОС. Posted via ActualForum NNTP Server 1.5 ... |
|||
:
Нравится:
Не нравится:
|
|||
08.04.2020, 21:19 |
|
Обновление данных по расписанию
|
|||
---|---|---|---|
#18+
Гаджимурадов Рустам alekcvp> Как это правильнее всего реализовать? alekcvp> Или, возможно, у FB есть какие-то встроенные решения для таких задач? Встроенных задач AFAIK нет (не уверен насчёт 4.0). Как правильнее - зависит от того, что и когда нужно делать. Из того, что перечислено - я бы сделал набор хранимых процедур (или два набора, если только понедельник/пятница), который запускал бы bat-ником ISQL по заданию в шедуллере ОС. Одну хранимку. Всё ветвление в ней. Состоящую из вызовов сколько надо других хранимок, в которых локализованы вопросы близкой тематики. Просто для понятности где рыть если что-то не срослось. ... |
|||
:
Нравится:
Не нравится:
|
|||
08.04.2020, 21:49 |
|
Обновление данных по расписанию
|
|||
---|---|---|---|
#18+
СПМ> Одну хранимку. Всё ветвление в ней Да, как вариант. Точка входа с клиента (ISQL) должна быть одна, т.е. действия должны быть "запрограммированы" не в скрипте на клиенте, а в ХП (одной или нескольких) на сервере. Posted via ActualForum NNTP Server 1.5 ... |
|||
:
Нравится:
Не нравится:
|
|||
08.04.2020, 22:13 |
|
Обновление данных по расписанию
|
|||
---|---|---|---|
#18+
А потом долго разгребать когда "чтото пошло не так" потому что этот "универсальный решатель проблем" кто-то внезапно вызвал не с тем параметром, который был нужен. Posted via ActualForum NNTP Server 1.5 ... |
|||
:
Нравится:
Не нравится:
|
|||
09.04.2020, 00:15 |
|
Обновление данных по расписанию
|
|||
---|---|---|---|
#18+
Dimitry Sibiryakov, Ну если точнее, то там есть таблица, в которой в некоторых записях есть поле, содержащее день месяца или день недели, и в этот день надо обнулить другое поле в этой же записи. ... |
|||
:
Нравится:
Не нравится:
|
|||
09.04.2020, 00:48 |
|
Обновление данных по расписанию
|
|||
---|---|---|---|
#18+
Dimitry Sibiryakov А потом долго разгребать когда "чтото пошло не так" потому что этот "универсальный решатель проблем" кто-то внезапно вызвал не с тем параметром, который был нужен. Этот решатель проблем вызывается только кроном. Пользовательские приложения о нём ни сном ни духом. Сотрудник отдела программирования, разумеется, может сделать всё что угодно. Например, delete from rdb$pages. Был у меня один крендель, который каждую строку в программе писал с условием - сделал он ошибку в предыдущей или нет. Недолго был, потому что Hello world он бы закончил аккурат ко второму пришествию Спасителя :) ... |
|||
:
Нравится:
Не нравится:
|
|||
09.04.2020, 01:19 |
|
Обновление данных по расписанию
|
|||
---|---|---|---|
#18+
Dimitry Sibiryakov А потом долго разгребать когда "чтото пошло не так" потому что этот "универсальный решатель проблем" кто-то внезапно вызвал не с тем параметром, который был нужен. А можно вообще без параметров. И крон тут только для того что бы инициировать события извне, коль сам Firebird этого делать не обучен. Ну а дальше - как Ded написал, в процедуре уже можем смотреть в какую нибудь таблицу в которой прописано когда и что нужно запускать, ну и соответственно, запускаем. По сути внешний крон создает временнОе событие которое толкает "внутренний крон в базе", который уже дальше разбирается что там положено делать в это время. А это временнОе событие можно вообще создавать каждый час, или каждую минуту, вне зависимости от того с какой частотой должны выполняться собственно задания "внутреннего крона". Что бы не запустить одно задание несколько раз, в базе можно делать что-то типа семафоров. Или прописывать в таблицу что задание было запущено в тогда-то. ... |
|||
:
Нравится:
Не нравится:
|
|||
09.04.2020, 05:02 |
|
Обновление данных по расписанию
|
|||
---|---|---|---|
#18+
Старый плюшевый мишка Одну хранимку. Всё ветвление в ней. Состоящую из вызовов сколько надо других хранимок, в которых локализованы вопросы близкой тематики. Просто для понятности где рыть если что-то не срослось. С одной хранимкой хреново колоть на треды, если задание намбер4 "ушло в себя", то что делать с намбером5 и далее? ... |
|||
:
Нравится:
Не нравится:
|
|||
09.04.2020, 10:03 |
|
Обновление данных по расписанию
|
|||
---|---|---|---|
#18+
alekcvp, У нас на серваках (RedHat, Windows 200X) уже больше десяти лет юзается crontab+isql. При этом там задач 20 - на все случаи жизни. Если нужно могу вам скинуть рабочий код. P.S. под винду используем одноименную тулзу (nncron) + IBeScript от Александра. Все работает без нареканий. Удачи !! ... |
|||
:
Нравится:
Не нравится:
|
|||
09.04.2020, 10:28 |
|
Обновление данных по расписанию
|
|||
---|---|---|---|
#18+
AltHasp alekcvp, У нас на серваках (RedHat, Windows 200X) уже больше десяти лет юзается crontab+isql. При этом там задач 20 - на все случаи жизни. Если нужно могу вам скинуть рабочий код. P.S. под винду используем одноименную тулзу (nncron) + IBeScript от Александра. Все работает без нареканий. Удачи !! Интересно было бы глянуть :) ... |
|||
:
Нравится:
Не нравится:
|
|||
09.04.2020, 12:15 |
|
Обновление данных по расписанию
|
|||
---|---|---|---|
#18+
AltHasp> Если нужно могу вам скинуть рабочий код. Рабочий код чего именно? Выкладывайте сюда - в будущем, кому понадобится - смогут подсмотреть. Posted via ActualForum NNTP Server 1.5 ... |
|||
:
Нравится:
Не нравится:
|
|||
09.04.2020, 12:40 |
|
Обновление данных по расписанию
|
|||
---|---|---|---|
#18+
AltHasp alekcvp, P.S. под винду используем одноименную тулзу (nncron) + IBeScript от Александра. Все работает без нареканий. Удачи !! Спасибо за идею про ibescript ) А в чём преимущества nncron перед стандартным шедулером? ... |
|||
:
Нравится:
Не нравится:
|
|||
09.04.2020, 12:48 |
|
Обновление данных по расписанию
|
|||
---|---|---|---|
#18+
alekcvp, nnCron - это мощный планировщик/скриптер/менеджер автоматизации. Он пригодится всем, кто хотел бы автоматизировать большую часть рутинной компьютерной работы. Он более гибкий, чем системный щедулер с собственным скриптовым языком. https://github.com/nnCron/nnCron ... |
|||
:
Нравится:
Не нравится:
|
|||
09.04.2020, 13:07 |
|
Обновление данных по расписанию
|
|||
---|---|---|---|
#18+
AltHasp alekcvp, nnCron - это мощный планировщик/скриптер/менеджер автоматизации. Мы пользуемся XStarter'ом. Тоже продвинутая вещь. ... |
|||
:
Нравится:
Не нравится:
|
|||
09.04.2020, 14:50 |
|
Обновление данных по расписанию
|
|||
---|---|---|---|
#18+
Ну я всё-таки думаю, что с задачей раз в сутки запустить батник/екзешник шедулер справится.... ... |
|||
:
Нравится:
Не нравится:
|
|||
09.04.2020, 17:59 |
|
Обновление данных по расписанию
|
|||
---|---|---|---|
#18+
alekcvp Добрый день. Имеется некая база данных. И в ней есть данные, которые необходимо обновлять (устанавливать в 0) с некоторой периодичностью (раз в неделю, например). Причём какие-то данные должны обнуляться по понедельниками, а какие-то по пятницам. Как это правильнее всего реализовать? Триггером? Отдельным приложением, запускаемым по расписанию операционной системой? Или, возможно, у FB есть какие-то встроенные решения для таких задач? Сделай триггером. Ну пожа-а-алуйста! ... |
|||
:
Нравится:
Не нравится:
|
|||
10.04.2020, 02:32 |
|
Обновление данных по расписанию
|
|||
---|---|---|---|
#18+
alekcvp А в чём преимущества nncron перед стандартным шедулером? Формат файла с заданиями очень похож на формат обычного cron. Это может быть удобным если вы пользуетесь и линуксом тоже. Легко редактируется. В виндовом планировщике после редактирования каждого задания просит ввести пароль администратора. Когда я пытался сделать запуск бэкапа каждый час в определенном промежутке рабочего времени - то в nncron это была одна строка, а в виндовом понадобилось сделать целую пачку. Я использую nnCronLite, он бесплатен. ... |
|||
:
Нравится:
Не нравится:
|
|||
10.04.2020, 07:21 |
|
Обновление данных по расписанию
|
|||
---|---|---|---|
#18+
fraks Когда я пытался сделать запуск бэкапа каждый час в определенном промежутке рабочего времени - то в nncron это была одна строка, а в виндовом понадобилось сделать целую пачку. О_о Начать задание каждый день в 10 часов, повторять каждый час в течении 8 часов?.. ... |
|||
:
Нравится:
Не нравится:
|
|||
14.04.2020, 20:23 |
|
Обновление данных по расписанию
|
|||
---|---|---|---|
#18+
alekcvp, Сейчас виндовый планировщик поприличней. Думаю, то что у fraks, тоже одним заданием можно сделать. ... |
|||
:
Нравится:
Не нравится:
|
|||
14.04.2020, 20:53 |
|
Обновление данных по расписанию
|
|||
---|---|---|---|
#18+
alekcvp fraks Когда я пытался сделать запуск бэкапа каждый час в определенном промежутке рабочего времени - то в nncron это была одна строка, а в виндовом понадобилось сделать целую пачку. О_о Начать задание каждый день в 10 часов, повторять каждый час в течении 8 часов?.. И вот тут у меня возникает вопрос - а каким образом задать точное время когда запускается задача, а не "повторять каждые 1 час"?? В кроне я что прописал то и будет. И я с точностью до секунды знаю когда и от чего у меня выросла нагрузка. И если мне нужно каждый час запускать еще чего-то, я разношу эти задания по времени на нужное мне количество минут. В итоге да, можно заставить и штатный планировщик это сделать, и он умеет еще какие-то штуки, что в кроне нету, но оно мне и без надобности, и в кроне удобнее и проще - все видно в одном текстовом файле а не в куче окошек и в куче вкладок. И при настройке сервера под линухом навыки примерно те же в этом месте требуются. ... |
|||
:
Нравится:
Не нравится:
|
|||
14.04.2020, 21:50 |
|
Обновление данных по расписанию
|
|||
---|---|---|---|
#18+
Под Win пользуюсь этим: firebird-a7in-scheduler В приблуде есть какой то косяк - иногда некоторые таски почему то выполняются чуть позже, но в остальном использую несколько лет без каких либо проблем. ... |
|||
:
Нравится:
Не нравится:
|
|||
15.04.2020, 10:13 |
|
Обновление данных по расписанию
|
|||
---|---|---|---|
#18+
fraks alekcvp пропущено... О_о Начать задание каждый день в 10 часов, повторять каждый час в течении 8 часов?.. И вот тут у меня возникает вопрос - а каким образом задать точное время когда запускается задача, а не "повторять каждые 1 час"?? Так-то этот один час будет считаться от первого запуска, AFAIR. ... |
|||
:
Нравится:
Не нравится:
|
|||
16.04.2020, 10:50 |
|
Обновление данных по расписанию
|
|||
---|---|---|---|
#18+
alekcvp Запускать задачу в течении одного периода с разными интервалами - очень специфичная задача. Совсем нет. Есть у нас такие задачи. Но пока максимум три времени за сутки. В XStarter'е можно на одну задачу навесить несколько расписаний. ... |
|||
:
Нравится:
Не нравится:
|
|||
16.04.2020, 12:16 |
|
|
start [/forum/topic.php?fid=40&msg=39944991&tid=1560381]: |
0ms |
get settings: |
10ms |
get forum list: |
14ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
125ms |
get topic data: |
12ms |
get forum data: |
3ms |
get page messages: |
62ms |
get tp. blocked users: |
1ms |
others: | 248ms |
total: | 483ms |
0 / 0 |