@jvmchat

Страница 667 из 2890
Dmitry
28.10.2016
03:20:16
вот эта шляпа в работе http://test.handmug.ru/vkmusictoyoutubeplaylist/

Dmitry
28.10.2016
06:07:21
не смысл это

Ivan
28.10.2016
06:12:09
ну тут весь код

Google
Ivan
28.10.2016
06:12:12
крайне плох

Bogdan
28.10.2016
06:15:11
while (queue != null) { YouService.saveToPlaylistSong(playlistname, queue.take()); }

а почему гц сожрет очередь?

Ivan
28.10.2016
06:15:51
либо тут кусок кода с обнулением выпилили

либо явный лик

если на этапе формирования плайлиста возникнет ошибка пользователь об этом даже не узнает

для того чтобы не плодить потоки нужно использовать пул

@Scope("session") на контроллере

явно пишет джун без руководства лида или хотя бы мидла

Dmitry
28.10.2016
06:26:28
ес джун

а почему гц сожрет очередь?
ну да, тут фейл, но пох. суть как скармливать продюсеру дату

Ivan
28.10.2016
06:29:59
Что произойдет если зайдет 700 пользователей

Google
Ivan
28.10.2016
06:30:05
и создадутся их сессии?

Dmitry
28.10.2016
06:31:27
ок а как мне стейт сохранять?

Ivan
28.10.2016
06:31:52
используй @SessionAttributes на контроллере

Dmitry
28.10.2016
06:31:57
на фласке писал все в сессию кидал, вроде ок, 700 юзеров - это ваще фантастика

Ivan
28.10.2016
06:32:08
а scope("session") повесь на отдельный класс

Dmitry
28.10.2016
06:32:59
да просто так проще было, хотел в объект сессии пихать, но лень

но пасиб ))

Ivan
28.10.2016
06:34:04
потоки через .start не создавай

как минимум почитай что тут пишут

https://docs.oracle.com/javase/7/docs/api/java/util/concurrent/ExecutorService.html

Dmitry
28.10.2016
06:34:32
ну да, можно пулом, но не суть

мне бы понять как передавать объект в потом

поток

можно же просто как ссылку отдать, да?

Bogdan
28.10.2016
06:35:26
а сейчас ты что делаешь?

Ivan
28.10.2016
06:36:02
в твоей задаче можно использовать стримы

из Java8

хотя у тебя продюсер есть

Dmitry
28.10.2016
06:36:39
ну так и делаю... но просто плейлист создается с задержкой, а дебажить лень было, вот хотел у профи спросить - ну вы типо

стримы боюсь - у них стектрейс ужасен

Google
Bogdan
28.10.2016
06:37:28
ну я так понял, у тебя на каждый запрос создается висячий поток

Ivan
28.10.2016
06:37:29
ну вот конкретно в твоей это задаче можно юзать итератор или стримы, а не делать код таким сложным

Bogdan
28.10.2016
06:39:41
YouService делает http-запросы?

Dmitry
28.10.2016
06:39:52
ага

и продюсер и консьюмер делают запросы

Bogdan
28.10.2016
06:40:12
очевидно именно там основное время исполнения

Dmitry
28.10.2016
06:41:13
дебажть короче с System().currentTime() походу )))

всем спасибо, ребят)

Ivan
28.10.2016
06:42:22
код исправь иначе в будущем багов схватишь охренеешь

Bogdan
28.10.2016
06:42:40
если у тебя 1000 песен, ты думаешь 1000 запросов сделается за наносекунды?

Dmitry
28.10.2016
06:44:07
не я понимаю это. я 2000 прогонял, минута где-то. но я не понимаю почему плейлист создается не сразу ) хотя по логике он должен создаваться снговенно - первый вызов же ))

Bogdan
28.10.2016
06:45:06
String playlistId = YouService.createPlaylistOnYoutube(playlistname);

вот это?

Dmitry
28.10.2016
06:45:13
ага

Bogdan
28.10.2016
06:45:18
бля

нц и при чем тут консьюмеры/продюсеры?

Google
Bogdan
28.10.2016
06:46:01
это надо у ютуба спрашивать

Dmitry
28.10.2016
06:46:40
ага, мой фейл. а вот не скажешь как вот это пофиксить? while (queue != null) { ...

в консьюмере

а то очередь то не подберется gc() же )) я чет подумал )

gc же с своем потоке да?

Ivan
28.10.2016
06:47:46
gc везде

вот только ссылка не в твоем потоке

в консумере ссылка queue всегда будет ссылать на объект

Admin
ERROR: S client not available

Ivan
28.10.2016
06:49:36
пока ты ее явно не установишь в null

Dmitry
28.10.2016
06:49:43
походу thread надо интерраптить...

Ivan
28.10.2016
06:49:52
?

Dmitry
28.10.2016
06:51:25
а где ее обнулять? )

чет не пойму

Ivan
28.10.2016
06:51:44
ты ее не обнулишь

а в чем прикол именно сделать два потока?

очень трудоемкая задача?

Dmitry
28.10.2016
06:55:28
ну там типо спрева надо получить vidoID песни гетом у ютуба, а потом надо еще постом это в плейлист пихнуть

вот пока один получает videoId, второй сохраняет в плейлист

ну и очередь между ними

Google
Dmitry
28.10.2016
06:58:14
а что если в очередь на продюсере null засунуть, а в консьюмере while (queue.take() != null )

на последней итерации в продюсере ))

Ivan
28.10.2016
06:59:28
ты учти что несмотря на то что объект один и тот же ссылки на него это два разных значения

почитай что такое ссылка в Java

поэтому обнуление одной ссылки не дает автоматического обнуления второй

Dmitry
28.10.2016
07:01:17
спасибо, походу без книжек не пройдет )))

Ivan
28.10.2016
07:01:18
ааа я понял

ты хочешь null запихить в очередь

Dmitry
28.10.2016
07:01:37
ага )))

Ivan
28.10.2016
07:01:42
я бы советовал тебе с таким подходом принести ружье в офис

на всякий случай

потому что этот код в продакшн

Dmitry
28.10.2016
07:01:57
да я в курсе )))))

Ivan
28.10.2016
07:02:01
лучше не деплоить

Dmitry
28.10.2016
07:02:15
костыль же )

Ivan
28.10.2016
07:02:17
ты сможешь либо всех вокру завалить либо себя

Nikita
28.10.2016
07:02:20
Ребз, всем привет) подскажите плз хороший онлайн курс под Андроид

Dmitry
28.10.2016
07:02:44
лан, пойду читать толстые книги ))))

Nikita
28.10.2016
07:03:30
а на русском хорошие ресурсы есть на примете?

Страница 667 из 2890