Size: a a a

2020 September 30

A

Alexey in JUG NN
Пономарев-старший скончался уже давно
источник

RM

Romian Makhline in JUG NN
Тупой вопрос - Мера больше не аутсорс?
источник

IB

Ivan Bondarenko in JUG NN
Как раз вроде наоборот. Недавно вакансии смотрели, так там ищут людей на продукты, которые там разрабатывали для одного заказчика еще 8 лет назад
источник

A

Alexey in JUG NN
Судя по количеству «проектов» выглядит как аутсорс https://career.orioninc.ru/projects
источник

מא

מיכאל איתן in JUG NN
Логотип о/ это вообще отдельный пир духа
источник

מא

מיכאל איתן in JUG NN
Аутсорсить мы не бросим, как говорится
источник

SS

Sergey Smyshlyaev in JUG NN
источник

SK

Sergey Kapralov in JUG NN
Стойкое чувство де-жа-вю: мне казалось мы уже тут шутили и про "зиг хайль", и про "орион чокопай"...
источник

SS

Sergey Smyshlyaev in JUG NN
Да, было дело, когда первая новость о переименовании прошла
источник
2020 October 09

SS

Sergey Smyshlyaev in JUG NN
источник

RM

Romian Makhline in JUG NN
[:||||:]
источник
2020 October 12

RM

Romian Makhline in JUG NN
существует поток задач приходящих от UI. каждая задача имеет приоритет и может выполняться некоторое продолжительное время без гарантии удачного выполнения. Задачи поступают в приоритетную очередь, откуда раздаются специальным исполнителям. Каждый исполнитель имеет ограничение по количеству одновременных задач, которых он может исполнять. Так же существует ограничение на количество задач, которые очередь может предоставлять.
Например в очередь 600 задач, и два исполнителя. сама очередь имеет ограничение в 400 одновременных задач, а исполнители 100 и 500 соответственно. Это значит, что очередь передаст 100 задач первому исполнителю и 300 второму, несмотря на то, что у второго остались слоты для исполнения.
Важным условиям является то, что задачи должны проводить минимально возможное время в очереди, а вот сколько времени они проведут в исполнителе не так важно. Так же пока задача находится в очереди и не была передана исполнителю ее приоритет может измениться или задача может быть отменена.
Мне не очень нравится, что очередь раздает задачи исполнителям, но таково требование и с этим я ничего не могу поделать(мне кажется правильней, что бы исполнители сами разбирали задачи)
Вопрос в том, как реализовать такую очередь лучше всего?
пока что все реализовано на несортированном списке, который сортируется каждый раз, как нам надо выдать очередную задачу. это не так страшно, так как ожидаемое количество задач пока что не велико(не больше 10к), но все же уверен, что можно сделать лучше. первое что мне пришло в голову - rxjava2, но там, на сколько мне известно, нельзя задать приоритет сообщению(или таки можно?). с помошью фильтров можно пытаться выципить задачи с наименьшим приоритетом, например. Есть ли иные способы и идеи?
источник

A

Alexey in JUG NN
PriorityBlockingQueue или MinMaxPriorityQueue из guava. При этом придётся написать немного кода для распределения задач consumer’ам. К примеру один из них получает задачи в 2 разв чаще чем другой (я бы сделал это через операцию %. Поищи в интернете это легко делается).
источник

RM

Romian Makhline in JUG NN
PriorityBlockingQueue передал сейчас на нее. мне в ней не нравится то, что изменение приоретета таски это не атмоарное действие. то есть нам надо снаала удалить элемент, а затем заново его положить, иначе poll не заработает корректно. пока что закрыл все локом.

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

A

Alexey in JUG NN
Изменение приоритета задачи после того как она уже попала в очередь - это нечастая задача. Да и объяснимо,впринципе. Тк если это делается на базе образно «дерева», то после смены приоритета нужно перебалансировать его. Можно, полагаю, попытаться перегрузить методы очереди чтобы это выглядело снаружи как атомарная операция. Но по суди - да, удалить и вставить заново как я понимаю.
источник

RM

Romian Makhline in JUG NN
Alexey
Изменение приоритета задачи после того как она уже попала в очередь - это нечастая задача. Да и объяснимо,впринципе. Тк если это делается на базе образно «дерева», то после смены приоритета нужно перебалансировать его. Можно, полагаю, попытаться перегрузить методы очереди чтобы это выглядело снаружи как атомарная операция. Но по суди - да, удалить и вставить заново как я понимаю.
в моем случае это частая операция. но не важно, так же у приорити кью не предсказуемо в каком порядке будут политься элементы с одинаковым приоритетом. все это я заборол. так что уже не важно.
как уже писал - надеялся, что существует уже готовое решение, например в гуаве или апачи или еще где о котором я не знаю, но не важно. дело сделано)
источник

SK

Sergey Kapralov in JUG NN
Romian Makhline
существует поток задач приходящих от UI. каждая задача имеет приоритет и может выполняться некоторое продолжительное время без гарантии удачного выполнения. Задачи поступают в приоритетную очередь, откуда раздаются специальным исполнителям. Каждый исполнитель имеет ограничение по количеству одновременных задач, которых он может исполнять. Так же существует ограничение на количество задач, которые очередь может предоставлять.
Например в очередь 600 задач, и два исполнителя. сама очередь имеет ограничение в 400 одновременных задач, а исполнители 100 и 500 соответственно. Это значит, что очередь передаст 100 задач первому исполнителю и 300 второму, несмотря на то, что у второго остались слоты для исполнения.
Важным условиям является то, что задачи должны проводить минимально возможное время в очереди, а вот сколько времени они проведут в исполнителе не так важно. Так же пока задача находится в очереди и не была передана исполнителю ее приоритет может измениться или задача может быть отменена.
Мне не очень нравится, что очередь раздает задачи исполнителям, но таково требование и с этим я ничего не могу поделать(мне кажется правильней, что бы исполнители сами разбирали задачи)
Вопрос в том, как реализовать такую очередь лучше всего?
пока что все реализовано на несортированном списке, который сортируется каждый раз, как нам надо выдать очередную задачу. это не так страшно, так как ожидаемое количество задач пока что не велико(не больше 10к), но все же уверен, что можно сделать лучше. первое что мне пришло в голову - rxjava2, но там, на сколько мне известно, нельзя задать приоритет сообщению(или таки можно?). с помошью фильтров можно пытаться выципить задачи с наименьшим приоритетом, например. Есть ли иные способы и идеи?
Мне кажется тут две независимые задачи. Первая - это пул задач с поддержкой приоритета (я специально не называю это очередью пока что), вторая - это клиенты с локальным лимитом на задачи. И вот для второй задачи я б не спешил rxjava сбрасывать со счетов - можно было бы попробовать реализовать это через реактивный backpressure - через него клиент будет в состоянии сказать раздатчику "харош, наелся".

Что у таски есть приоритет? Цифра? Возможны ли таски с одинаковым приоритетов и если да - каков для них должен быть порядок?
источник

RM

Romian Makhline in JUG NN
Sergey Kapralov
Мне кажется тут две независимые задачи. Первая - это пул задач с поддержкой приоритета (я специально не называю это очередью пока что), вторая - это клиенты с локальным лимитом на задачи. И вот для второй задачи я б не спешил rxjava сбрасывать со счетов - можно было бы попробовать реализовать это через реактивный backpressure - через него клиент будет в состоянии сказать раздатчику "харош, наелся".

Что у таски есть приоритет? Цифра? Возможны ли таски с одинаковым приоритетов и если да - каков для них должен быть порядок?
к сожалению не могу эти две задачи разделить, увы.
приоритет это цифра, таски с одинаковым приоритетом идут в порядке вставки - обычный фифо.
источник

SK

Sergey Kapralov in JUG NN
Romian Makhline
к сожалению не могу эти две задачи разделить, увы.
приоритет это цифра, таски с одинаковым приоритетом идут в порядке вставки - обычный фифо.
> к сожалению не могу эти две задачи разделить, увы.

Что мешает?

> приоритет это цифра, таски с одинаковым приоритетом идут в порядке вставки - обычный фифо.

Насколько строго требуется соблюдать эти гарантии. Например - конкуррентно происходит следующее: клиент просит таску, в пуле есть таска с приоритетом 3, а на сервер приходит таска с приоритетом 1 - какую таску должен получить клиент в таком случае?
источник

RM

Romian Makhline in JUG NN
Sergey Kapralov
> к сожалению не могу эти две задачи разделить, увы.

Что мешает?

> приоритет это цифра, таски с одинаковым приоритетом идут в порядке вставки - обычный фифо.

Насколько строго требуется соблюдать эти гарантии. Например - конкуррентно происходит следующее: клиент просит таску, в пуле есть таска с приоритетом 3, а на сервер приходит таска с приоритетом 1 - какую таску должен получить клиент в таком случае?
мы отдаем таску с наивысшим приоритетом, которая провела больше времени в пуле чем другие.

меня интересуют библиотечные решения, опять же, на коленке я это уже все реализовал, тут ничего сложного нету
источник