Перейти к содержимому


Автообновление значений


Сообщений в теме: 11

#1 TelecomMedia

    Активный участник

  • Пользователи
  • PipPipPip
  • 378 сообщений

Отправлено 25 Май 2014 - 11:37

Есть вот такая потребность: каждый день в несколько таблиц загружается обновленная информация. В таблицах несколько тысяч записей.

В этих таблицах есть вычисления (срабатывающие на отображение полей), обновляющие записи в т. Контрагенты.

Каждый раз приходится вручную открывать все страницы (а их более 20 в каждой из таблиц, при условии что отображается 100 записей) этих таблиц, чтобы обновить информацию. Можно кончено в настройках т. указать отображение скажем 1000 записей, но такой вариант не подходит, ибо информации очень много и все это сильно грузит систему.

Можно как то автоматизировать этот процесс, чтобы значения в контрагентах сами обновлялись?

#2 wondertalik

    Активный участник

  • Пользователи
  • PipPipPip
  • 1 159 сообщений
  • Пол:Мужчина
  • Город:Кривой Рог, Украина

Отправлено 25 Май 2014 - 14:13

Просмотр сообщенияfabrika-r (25 Май 2014 - 11:37) писал:

Есть вот такая потребность: каждый день в несколько таблиц загружается обновленная информация. В таблицах несколько тысяч записей.

В этих таблицах есть вычисления (срабатывающие на отображение полей), обновляющие записи в т. Контрагенты.

Каждый раз приходится вручную открывать все страницы (а их более 20 в каждой из таблиц, при условии что отображается 100 записей) этих таблиц, чтобы обновить информацию. Можно кончено в настройках т. указать отображение скажем 1000 записей, но такой вариант не подходит, ибо информации очень много и все это сильно грузит систему.

Можно как то автоматизировать этот процесс, чтобы значения в контрагентах сами обновлялись?
Перенесите все ваши вычисления при отображении в крон, и пусть он отрабатывает раз в день.

#3 CbCoder

    Активный участник

  • Программист ООО "КБ"
  • PipPipPip
  • 8 762 сообщений
  • Пол:Мужчина
  • Город:Казань

Отправлено 26 Май 2014 - 09:21

Либо более простой вариант: переносите код вычислений на отображение в доп.действие (даже менять в коде ничего не нужно) и запускаете его по всей таблице (т.е. без выделения записей). Плюс в том что не нужно будет по всем страницам проходить. Хотя крон конечно более лучший вариант, т.к. полный автомат (но там придется дописывать код, добавив цикл по записям)

#4 wondertalik

    Активный участник

  • Пользователи
  • PipPipPip
  • 1 159 сообщений
  • Пол:Мужчина
  • Город:Кривой Рог, Украина

Отправлено 26 Май 2014 - 10:15

Просмотр сообщенияCbCoder (26 Май 2014 - 09:21) писал:

Либо более простой вариант: переносите код вычислений на отображение в доп.действие (даже менять в коде ничего не нужно) и запускаете его по всей таблице (т.е. без выделения записей). Плюс в том что не нужно будет по всем страницам проходить. Хотя крон конечно более лучший вариант, т.к. полный автомат (но там придется дописывать код, добавив цикл по записям)
С доп. Действиями есть один подвох. Это время выполнения скрипта. Если очень много записей - можно выйти за границу позволенного времени исполнения.

#5 CbCoder

    Активный участник

  • Программист ООО "КБ"
  • PipPipPip
  • 8 762 сообщений
  • Пол:Мужчина
  • Город:Казань

Отправлено 26 Май 2014 - 10:26

Да, есть такая проблема. Возможно, добавим в будущем опцию перезагрузки скрипта, аналогично загрузке/выгрузке больших бэкапов. В кроне, кстати тоже может быть такая проблема, если для него не установлен отдельный max_executon_time. В частности, скрипт рассылки писем в кроне учитывает это и тоже перезапускает себя.

#6 wondertalik

    Активный участник

  • Пользователи
  • PipPipPip
  • 1 159 сообщений
  • Пол:Мужчина
  • Город:Кривой Рог, Украина

Отправлено 26 Май 2014 - 10:46

Хм, не знал. Хорошо что сказали. Учту при текущей разработке.


#7 TelecomMedia

    Активный участник

  • Пользователи
  • PipPipPip
  • 378 сообщений

Отправлено 27 Май 2014 - 09:30

Просмотр сообщенияCbCoder (26 Май 2014 - 09:21) писал:

Либо более простой вариант: переносите код вычислений на отображение в доп.действие (даже менять в коде ничего не нужно) и запускаете его по всей таблице (т.е. без выделения записей). Плюс в том что не нужно будет по всем страницам проходить. Хотя крон конечно более лучший вариант, т.к. полный автомат (но там придется дописывать код, добавив цикл по записям)

А в таком случае поля, которые есть в вычислении (на отображение), они должны быть отображены в таблице или это не имеет значения?

#8 CbCoder

    Активный участник

  • Программист ООО "КБ"
  • PipPipPip
  • 8 762 сообщений
  • Пол:Мужчина
  • Город:Казань

Отправлено 27 Май 2014 - 09:36

Нет, в доп.действии это как раз не имеет никакого значения, в чем еще один плюс.

#9 TelecomMedia

    Активный участник

  • Пользователи
  • PipPipPip
  • 378 сообщений

Отправлено 27 Май 2014 - 09:48

Спасибо.

#10 TelecomMedia

    Активный участник

  • Пользователи
  • PipPipPip
  • 378 сообщений

Отправлено 27 Май 2014 - 10:21

Еще вопрос: если после выполнения доп действия не произошло никакой ошибки (например, превышено время ожидания), то можно считать, что все значения перенеслись корректно и в полном объеме?

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

Так?

И еще момент - как записать команду, если я хочу, чтобы задание скажем отрабатывало в 9-30 утра?

#11 CbCoder

    Активный участник

  • Программист ООО "КБ"
  • PipPipPip
  • 8 762 сообщений
  • Пол:Мужчина
  • Город:Казань

Отправлено 27 Май 2014 - 10:54

Цитата

Еще вопрос: если после выполнения доп действия не произошло никакой ошибки (например, превышено время ожидания), то можно считать, что все значения перенеслись корректно и в полном объеме?

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

Цитата

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

В случае переноса в крон, код придется доработать, добавив цикл по таблице, т.к. доп.действие делает цикл самостоятельно, а в кроне этого нет (он не в курсе, какую таблицу и как вы хотите обработать)

Цитата

И еще момент - как записать команду, если я хочу, чтобы задание скажем отрабатывало в 9-30 утра?

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

#12 wondertalik

    Активный участник

  • Пользователи
  • PipPipPip
  • 1 159 сообщений
  • Пол:Мужчина
  • Город:Кривой Рог, Украина

Отправлено 27 Май 2014 - 10:59

Просмотр сообщенияfabrika-r (27 Май 2014 - 10:21) писал:

И еще момент - как записать команду, если я хочу, чтобы задание скажем отрабатывало в 9-30 утра?

тут и тут сможете найти что вам нужно.





Количество пользователей, читающих эту тему: 2

0 пользователей, 2 гостей, 0 анонимных