• Познакомьтесь с пентестом веб-приложений на практике в нашем новом бесплатном курсе

    «Анализ защищенности веб-приложений»

    🔥 Записаться бесплатно!

  • CTF с учебными материалами Codeby Games

    Обучение кибербезопасности в игровой форме. Более 200 заданий по Active Directory, OSINT, PWN, Веб, Стеганографии, Реверс-инжинирингу, Форензике и Криптографии. Школа CTF с бесплатными курсами по всем категориям.

Представления с отображением количества оставшихся дней

imendan

Green Team
22.09.2010
159
4
BIT
0
Приветствую всех! На работе поставили задачу. Огромное число документов (более 50 тысяч) отсортировать по количеству оставшихся дней до срока исполнения.
Было выполнено в двух вариантах:
1 - Каждый день (03:00) агент пробегает все документы и обновляет поле (количество дней от текущего дня до срока исполнения). И уже в представлении показывает это значение (используются не сами числа, а иконки. Например, красный значит просроченный документ).
2 - Расчет количества дней от текущего дня до срока исполнения заложен в столбце представления.

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

Что посоветуете, друзья?
 

lmike

нет, пердело совершенство
Lotus Team
27.08.2008
7 927
608
BIT
150
разбить задачу на осмысленные комбинации
сколько документов (вернее за какой срок) надо видеть единовременно? Уверен - не все овер50тыс
сделать сортировку по дню исполнения, брать коллекцию за дней 30 (от текущей даты), отображать на форме в виде ссылок
т.е. - создать навигатор по вьюшке и делать отбор по диапазону дат, отображение по вкусу (да хоть в эхель выгрузить)
можно еще в фолдеры отбирать... (но я бы так не делал)
 
Последнее редактирование:
  • Нравится
Реакции: imendan

swyatogor

Green Team
24.02.2014
593
24
BIT
0
@imendan и первый вариант будет всегда на порядок быстрее работать.. так как логика расчета будет исполняться в другом месте..
где то в хелпах видел рекомендацию не делать расчеты с датами при построении видов..
 
  • Нравится
Реакции: imendan

swyatogor

Green Team
24.02.2014
593
24
BIT
0
У мну есть подобные виды.. сделаны вот по такому принципу:
upload_2016-11-28_10-16-48.png

А эти все 50к доков нужно видеть кому то постоянно? или можно просто вывести что то типа статистики - столько доков с таким сроком, столько с таким?
 
  • Нравится
Реакции: imendan

savl

Lotus Team
28.10.2011
2 591
309
BIT
138
у меня было такое, делал через колонку: дата из документа < Текущей даты.
Каждую ночь работал агент, который в эту колонку проставлял @Today, потом вызов через консоль команды обновления вьюх.
Вполне нормально работало: 20К основных доков + 40К ответных в одном представлении + Readers поля + категоризация.
 
  • Нравится
Реакции: imendan

lmike

нет, пердело совершенство
Lotus Team
27.08.2008
7 927
608
BIT
150
Каждую ночь работал агент, который в эту колонку проставлял @Today
не уверен что в контексте топика это будет рациональным...
ведь нужна небольшая выборка (наверняка) а тут придется перестроить весь индекс
как по мне, срок до окончания - не более недели (остальное можно посчитать "старше" - флаг и с этого момента более не пересчитывать), просроченные - не важно знать насколько (и подойдет флаг в доке - вовсе убрать, по нему, из вьюшки, в др.)
можно добавить рассылку по отсечке (дней до окончания)
т.е. - если не отказываться от схем в топике - 1) с изменениями
 
  • Нравится
Реакции: imendan

imendan

Green Team
22.09.2010
159
4
BIT
0
...срок до окончания - не более недели (остальное можно посчитать "старше" - флаг и с этого момента более не пересчитывать), просроченные - не важно знать насколько (и подойдет флаг в доке - вовсе убрать, по нему, из вьюшки, в др.)...

Cпасибо, Imike! Как же я сам не догадался ) Каждый раз обновляю разницу дат. Жуть просто.

@imendan и первый вариант будет всегда на порядок быстрее работать.. так как логика расчета будет исполняться в другом месте..
где то в хелпах видел рекомендацию не делать расчеты с датами при построении видов..

Спасибо! Остановился на этом варианте.

...
А эти все 50к доков нужно видеть кому то постоянно? или можно просто вывести что то типа статистики - столько доков с таким сроком, столько с таким?

Надо видеть отдельным пользователям постоянно.

______________

Спасибо за выбор первого варианта. Как добавление к решению, я уже не буду сохранять разницу дней и в столбце по количествам дней показывать соответствующую иконку. Лучше сразу сохранить поле с номером иконки, что должно дать еще небольшой выигрыш в производительности.

Завтра отпишусь по скорости.

Благодарю всех.
 

Darkhan

Green Team
14.12.2012
99
2
BIT
0
Последний вариант самый рациональный, однако не следует забывать про возможные конфликты.
По мне, вместо присваивания флага просроченности непосредственно в док лучше кидать в папку "просроченные". Логику обработки коллекции оставить без изменения
 

ToxaRat

Чёрный маг
Green Team
06.11.2007
3 332
42
BIT
0
1 - удалить такой вид вообще
2 - каждому исполнителю показывать только документы которые он видит
3 - до того момента пока исполнитель все задачи не порешал в другие части системы его не пускать

проверено - работает лучше всего ;)
 

abdurtim

Active member
06.03.2017
34
0
BIT
0
Прошу прощения. Не стал создавать новую тему, апнул эту. Как в многозначном поле выбрать первое значение при помощи @-формул?
 

lmike

нет, пердело совершенство
Lotus Team
27.08.2008
7 927
608
BIT
150
вариант @SubSet(MyMultifield,1)
 

Мыш

Lotus Team
12.02.2008
1 213
29
BIT
43

Вот тут приведен аццкий вариант с несколькими @Adjust'ами. Не понял, как это работает, но вдруг...(это касательно вопроса по видам с датами).
 
Последнее редактирование:
Мы в соцсетях:

Обучение наступательной кибербезопасности в игровой форме. Начать игру!