Добро пожаловать в форум, Guest  >>   Войти | Регистрация | Поиск | Правила | В избранное | Подписаться
Все форумы / Java Новый топик    Ответить
Топик располагается на нескольких страницах: Ctrl  назад   1 [2] 3 4 5   вперед  Ctrl      все
 Re: Выполнение таски вне основного потока. (или хз как назвать тред)  [new]
Petro123
Member

Откуда: Загрузочный сектор Москвы (AutoPOI.ru)
Сообщений: 36512
Tsyklop,
Контейнер сам создаст поток. Ферштеен?
10 янв 19, 14:46    [21781689]     Ответить | Цитировать Сообщить модератору
 Re: Выполнение таски вне основного потока. (или хз как назвать тред)  [new]
Озверин
Member

Откуда: Ростов-на-Дону
Сообщений: 4785
Tsyklop, тогда я проблему не понял.

Проблема в том, чтобы запустить отдельный поток? Или запустить js код из java? Или работать с phatomjs из явы?
10 янв 19, 14:57    [21781702]     Ответить | Цитировать Сообщить модератору
 Re: Выполнение таски вне основного потока. (или хз как назвать тред)  [new]
Petro123
Member

Откуда: Загрузочный сектор Москвы (AutoPOI.ru)
Сообщений: 36512
Озверин,
Он забыл асинхронность веб по умолчанию. Без всякого кода. Только и всего.
10 янв 19, 15:07    [21781719]     Ответить | Цитировать Сообщить модератору
 Re: Выполнение таски вне основного потока. (или хз как назвать тред)  [new]
Leonid Kudryavtsev
Member

Откуда:
Сообщений: 7387
про Web в исходном сообщении ничего не было
10 янв 19, 15:09    [21781720]     Ответить | Цитировать Сообщить модератору
 Re: Выполнение таски вне основного потока. (или хз как назвать тред)  [new]
Leonid Kudryavtsev
Member

Откуда:
Сообщений: 7387
Если Spring, то гугля вполне находит шедулер от спринга
(спрингом не пользуюсь, умею только гуглеть, ничего о шедулере спринга сказать не могу)

http://ru.lmgtfy.com/?q=spring scheduler

https://docs.spring.io/spring/docs/3.2.x/spring-framework-reference/html/scheduling.html
10 янв 19, 15:11    [21781724]     Ответить | Цитировать Сообщить модератору
 Re: Выполнение таски вне основного потока. (или хз как назвать тред)  [new]
Tsyklop
Member

Откуда: Украина
Сообщений: 816
Leonid Kudryavtsev
Если Spring, то гугля вполне находит шедулер от спринга
(спрингом не пользуюсь, умею только гуглеть, ничего о шедулере спринга сказать не могу)

http://ru.lmgtfy.com/?q=spring scheduler

https://docs.spring.io/spring/docs/3.2.x/spring-framework-reference/html/scheduling.html

Тоже думал в его сторону. Но тут вариант такой что есть таска которая выполняется каждые 5 минут, допустим. Выгребает все сайты с бд где нет фото и делает их. Но лучше наверно помещать в отдельную таблицу таску.
10 янв 19, 15:48    [21781795]     Ответить | Цитировать Сообщить модератору
 Re: Выполнение таски вне основного потока. (или хз как назвать тред)  [new]
Tsyklop
Member

Откуда: Украина
Сообщений: 816
Озверин
Tsyklop, тогда я проблему не понял.

Проблема в том, чтобы запустить отдельный поток? Или запустить js код из java? Или работать с phatomjs из явы?


Как это лучше делать. Или же запустить поток или же делегировать это дело кому-то другому. и т.д. Как работать с фантомом я знаю и умею. (И да я знаю про потоки в вебе)
10 янв 19, 15:49    [21781796]     Ответить | Цитировать Сообщить модератору
 Re: Выполнение таски вне основного потока. (или хз как назвать тред)  [new]
Tsyklop
Member

Откуда: Украина
Сообщений: 816
Petro123
Озверин,
Он забыл асинхронность веб по умолчанию. Без всякого кода. Только и всего.

не забыл как бы.
10 янв 19, 15:50    [21781798]     Ответить | Цитировать Сообщить модератору
 Re: Выполнение таски вне основного потока. (или хз как назвать тред)  [new]
Leonid Kudryavtsev
Member

Откуда:
Сообщений: 7387
Tsyklop
Leonid Kudryavtsev
Если Spring, то гугля вполне находит шедулер от спринга
(спрингом не пользуюсь, умею только гуглеть, ничего о шедулере спринга сказать не могу)

http://ru.lmgtfy.com/?q=spring scheduler

https://docs.spring.io/spring/docs/3.2.x/spring-framework-reference/html/scheduling.html

Тоже думал в его сторону. Но тут вариант такой что есть таска которая выполняется каждые 5 минут, допустим. Выгребает все сайты с бд где нет фото и делает их. Но лучше наверно помещать в отдельную таблицу таску.

При чем тут таблица?

Если я правильно понял доку от спринга, объявили метод @Async и не паритесь. Все остальная работа по контролю Job'ов, должна лежать на том, кто их будет выполнять (пул потоков и прочее)
10 янв 19, 15:54    [21781807]     Ответить | Цитировать Сообщить модератору
 Re: Выполнение таски вне основного потока. (или хз как назвать тред)  [new]
Petro123
Member

Откуда: Загрузочный сектор Москвы (AutoPOI.ru)
Сообщений: 36512
Leonid Kudryavtsev,
А спринг не веб что ли?
10 янв 19, 16:08    [21781824]     Ответить | Цитировать Сообщить модератору
 Re: Выполнение таски вне основного потока. (или хз как назвать тред)  [new]
Petro123
Member

Откуда: Загрузочный сектор Москвы (AutoPOI.ru)
Сообщений: 36512
Tsyklop,
Делать фото надо там где бизнес логика. Т. Е. Добавляем сайт.
А не оставляем на потом... Кто нибудь.... Разгребает это Г.
10 янв 19, 16:10    [21781828]     Ответить | Цитировать Сообщить модератору
 Re: Выполнение таски вне основного потока. (или хз как назвать тред)  [new]
Tsyklop
Member

Откуда: Украина
Сообщений: 816
Petro123
Tsyklop,
Делать фото надо там где бизнес логика. Т. Е. Добавляем сайт.
А не оставляем на потом... Кто нибудь.... Разгребает это Г.

окей, окей. уговорили. Спасибо.
10 янв 19, 16:41    [21781911]     Ответить | Цитировать Сообщить модератору
 Re: Выполнение таски вне основного потока. (или хз как назвать тред)  [new]
Озверин
Member

Откуда: Ростов-на-Дону
Сообщений: 4785
Tsyklop
Озверин
Tsyklop, тогда я проблему не понял.

Проблема в том, чтобы запустить отдельный поток? Или запустить js код из java? Или работать с phatomjs из явы?


Как это лучше делать. Или же запустить поток или же делегировать это дело кому-то другому. и т.д. Как работать с фантомом я знаю и умею. (И да я знаю про потоки в вебе)



так в итоге - это микросервисы или десктоп ?
10 янв 19, 16:42    [21781914]     Ответить | Цитировать Сообщить модератору
 Re: Выполнение таски вне основного потока. (или хз как назвать тред)  [new]
s62
Member

Откуда: Жуковский
Сообщений: 874
Tsyklop,
на всякий случай,
task с английского переводится на русский "задача", "задание", на украинский "задача", "завдання".
10 янв 19, 16:44    [21781918]     Ответить | Цитировать Сообщить модератору
 Re: Выполнение таски вне основного потока. (или хз как назвать тред)  [new]
Tsyklop
Member

Откуда: Украина
Сообщений: 816
Озверин
Tsyklop
пропущено...


Как это лучше делать. Или же запустить поток или же делегировать это дело кому-то другому. и т.д. Как работать с фантомом я знаю и умею. (И да я знаю про потоки в вебе)



так в итоге - это микросервисы или десктоп ?

микросервисы.
10 янв 19, 16:52    [21781933]     Ответить | Цитировать Сообщить модератору
 Re: Выполнение таски вне основного потока. (или хз как назвать тред)  [new]
Leonid Kudryavtsev
Member

Откуда:
Сообщений: 7387
тут еще терминалогическая путаница

task vs thread - в контексте многозадачности и ОС

task a la job - в контексте scheduler'ов
10 янв 19, 16:52    [21781934]     Ответить | Цитировать Сообщить модератору
 Re: Выполнение таски вне основного потока. (или хз как назвать тред)  [new]
Tsyklop
Member

Откуда: Украина
Сообщений: 816
s62
Tsyklop,
на всякий случай,
task с английского переводится на русский "задача", "задание", на украинский "задача", "завдання".

да ладно? я и не знал, слушайте. укр нах....
10 янв 19, 16:53    [21781935]     Ответить | Цитировать Сообщить модератору
 Re: Выполнение таски вне основного потока. (или хз как назвать тред)  [new]
Озверин
Member

Откуда: Ростов-на-Дону
Сообщений: 4785
Tsyklop
Озверин
пропущено...



так в итоге - это микросервисы или десктоп ?

микросервисы.


есть 2 пути - сложный и простой.

Простой заключается в том, чтобы дергать уже чей-то сервис.
Предположим, такой: http://www.page2images.com/Create-website-screenshot-online-API (там вроде 100 запросов в день?)
Этот сервис по rest api вернет превью для заданного сайта.

Сложный заключается в написании своего микросервиса(мы ж микросервисы?) и дергании его.
Учитывая, что вы знаете фантомджс, я бы этот сервис поднял на node.js и всю магию бы делал там, ну и потом бы за него дергал.

Если второй путь подходит, но не подходит всякие node.js, и нужен именно java-way, то берем в руки что-нибудь вроде phatom wrapper`а и дергаем за фантом из этой либы в java уже.

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

@Scheduled(cron = "а-тут-крон-выражение")


и в любом классе конфигурации(это там, где @Configuration) должна быть аннотация: @EnableScheduling
10 янв 19, 17:05    [21781947]     Ответить | Цитировать Сообщить модератору
 Re: Выполнение таски вне основного потока. (или хз как назвать тред)  [new]
Petro123
Member

Откуда: Загрузочный сектор Москвы (AutoPOI.ru)
Сообщений: 36512
Мда... Классика приделывания микросервисов ко всему, что ни попадя)
Вместо
function setMyFoto(url) ;
Забабахаем микросервисы, API, оркестровку и шину.
10 янв 19, 17:28    [21781984]     Ответить | Цитировать Сообщить модератору
 Re: Выполнение таски вне основного потока. (или хз как назвать тред)  [new]
cossack5
Member

Откуда:
Сообщений: 413
В том же спринге есть @Async. Судя по первому посту ТС, это то что нужно.
10 янв 19, 17:34    [21781995]     Ответить | Цитировать Сообщить модератору
 Re: Выполнение таски вне основного потока. (или хз как назвать тред)  [new]
забыл ник
Member

Откуда:
Сообщений: 2601
Молодцы мужики, разобрались всего-то за 2 страницы.
10 янв 19, 17:40    [21782008]     Ответить | Цитировать Сообщить модератору
 Re: Выполнение таски вне основного потока. (или хз как назвать тред)  [new]
Tsyklop
Member

Откуда: Украина
Сообщений: 816
Petro123, Я провел тесты. Страница stackowerflow у меня грузиться око минуты в phantomjs. это никуда не годится. Вообще.
28 янв 19, 10:52    [21795568]     Ответить | Цитировать Сообщить модератору
 Re: Выполнение таски вне основного потока. (или хз как назвать тред)  [new]
Petro123
Member

Откуда: Загрузочный сектор Москвы (AutoPOI.ru)
Сообщений: 36512
Tsyklop
Petro123, Я провел тесты. Страница stackowerflow у меня грузиться око минуты в phantomjs. это никуда не годится. Вообще.

"Страница грузится" это ответ домохозяек.
На что конкретно уходит время?
28 янв 19, 10:58    [21795570]     Ответить | Цитировать Сообщить модератору
 Re: Выполнение таски вне основного потока. (или хз как назвать тред)  [new]
lleming
Member

Откуда:
Сообщений: 1527
Tsyklop
Petro123, Я провел тесты. Страница stackowerflow у меня грузиться око минуты в phantomjs. это никуда не годится. Вообще.


Казалось бы причем здесь java. Во вторых никто не знал бы что существует stackoverflow если бы он грузился минуту. Банально терпения у людей не хватало бы ждать по минуте.

А по факту, что означает грузится около минуты от начала загрузки до чего ?
window.onready event или phantomjs заканчивает с exit(0) ?

Так страницу сейчас можно вечно грузить с учетом websocket. Из опыта если на сайте навешен какой то сторонний api для теж же яндекс карт или что особенно актуально сторонний assistant вот он может грузиться с минуту. Т.е. сам сайт в 300мс грузится и затем около 30-35с этот асистант подгружается через ajax.

Можно еще полистать настройки Phantomjs max parallel connection чтото такое (есть у всех браузеров, и есть подозрение что у phantomjs по умолчанию тоже что и chrome)
28 янв 19, 12:09    [21795643]     Ответить | Цитировать Сообщить модератору
 Re: Выполнение таски вне основного потока. (или хз как назвать тред)  [new]
lleming
Member

Откуда:
Сообщений: 1527
ну и еще вопрос по поводу времени загрузки от чего начало считается?
Входит туда время необходимое для самого старта phantomjs ?
28 янв 19, 12:11    [21795647]     Ответить | Цитировать Сообщить модератору
Топик располагается на нескольких страницах: Ctrl  назад   1 [2] 3 4 5   вперед  Ctrl      все
Все форумы / Java Ответить