|
Почему 1С не сделает многопоточного клиента, если он уже есть? | ☑ | ||
---|---|---|---|---|
0
H A D G E H O G s
22.05.15
✎
00:18
|
Ночи доброй.
Собственно, сабж. Я конечно понимаю, что на запись данных этого делать не стоит, либо на вывод в интерфейс; но вот например, на грязное чтение из базу в файл - почему бы и нет? |
|||
1
PR
22.05.15
✎
00:19
|
(0) Что такое многопоточный клиент? И зачем? И что значит уже есть?
|
|||
2
GROOVY
22.05.15
✎
00:23
|
Многопоточный клиент - это как и зачем? Чтоб бухи одной рукой выписку вносили, а другой баланс формировали?
|
|||
3
H A D G E H O G s
22.05.15
✎
00:24
|
Кстати, говоря про то, что он уже есть - я не лукавлю :-)
Клиент реально многопоточен, я не использую никаких хаков, я использую типовой функционал :-) Вот мы пишем 4 файла в разных потоках. Загрузка ЦП: http://s61.radikal.ru/i174/1505/db/f4df72d65313.png Кусок кода: http://i008.radikal.ru/1505/20/90b17ce1f44f.png Результат: http://s020.radikal.ru/i702/1505/b5/5e9ab14f48e6.png Либо мы делаем вычисления: Загрузка ЦП: http://s020.radikal.ru/i706/1505/98/274c4fb2f600.png Кусок кода: http://i016.radikal.ru/1505/40/e4b36d0cfbdc.png При этом все работает - оболочка откликается, справочники открываются. |
|||
4
H A D G E H O G s
22.05.15
✎
00:25
|
Да, есть ньюансы.
Когда идут вычисления в 4 потока - оболочка подтормаживает, при 3 потоках - все норм. В потоках нельзя выводить что-то в интерфейс - разработчики не предусмотрели синхронизацию похоже. При записи справочников в потоках - писать будет только 1 поток. |
|||
5
GROOVY
22.05.15
✎
00:26
|
"Запись данных " и "Чтение" - это как бы не клиент делает.
|
|||
6
klis
22.05.15
✎
00:26
|
(1)(2) Пока какой-нибудь мега отчет формируется 10-20 минут, можно параллельно заниматься другими делами. Сейчас того же самого можно добиться, запустив два параллельных клиента, например.
|
|||
7
GROOVY
22.05.15
✎
00:27
|
Есть же фоновые задания, которые специально для распараллеливания и делали. Но клиент тут ни при чем.
|
|||
8
H A D G E H O G s
22.05.15
✎
00:27
|
(5) Это как бы понятно, клиент раздает задания и ждет результата от сервера.
|
|||
9
PR
22.05.15
✎
00:27
|
(6) Проснись и пой, уже дано отчеты формируются в фоне.
Можно даже один и тот же отчет запустить еще раз, пока он первый раз формируется. Так сказать, наложить себе же за шиворот в прыжке. |
|||
10
GROOVY
22.05.15
✎
00:28
|
(8) Тогда я не понимаю о чем топик.
|
|||
11
H A D G E H O G s
22.05.15
✎
00:28
|
(7) Их аналог WaitForMultipleObjects нереально медленный :-)
|
|||
12
PR
22.05.15
✎
00:28
|
(8) Так а чего же ты ждешь от 1С тогда? Все сделано. Пользуйся.
|
|||
13
GROOVY
22.05.15
✎
00:29
|
(9) Ну да, скдшные по дефолту в фоне формируются.
|
|||
14
GROOVY
22.05.15
✎
00:29
|
(11) Это что такое?
|
|||
15
klis
22.05.15
✎
00:29
|
(9) Ок. А если не отчет, а обработка? Или там проведение документа?
|
|||
16
H A D G E H O G s
22.05.15
✎
00:30
|
(14) Это ОжидатьЗавершения() в 1С.
|
|||
17
GROOVY
22.05.15
✎
00:31
|
(15) В фоновое задание его передай.
|
|||
18
PR
22.05.15
✎
00:32
|
(15) Ознакомься на досуге http://v8.1c.ru/o7/201412async/index.htm
|
|||
19
GROOVY
22.05.15
✎
00:32
|
(16) Ну с этим есть небольшие хотелки... Все через... Не очень очевидные методы реализовано.
|
|||
20
H A D G E H O G s
22.05.15
✎
00:33
|
Вот. Фоновые задания :-) Для файловой версии надо запускать отдельное приложение - обработчик, вроде да?
|
|||
21
PR
22.05.15
✎
00:33
|
+(18) И с механизмом фоновых заданий
|
|||
22
PR
22.05.15
✎
00:33
|
(20) Дима, е мое :))
http://v8.1c.ru/o7/201305fi/index.htm |
|||
23
PR
22.05.15
✎
00:34
|
+(22) Файловая версия вообще кал. Не будем про нее :))
|
|||
24
H A D G E H O G s
22.05.15
✎
00:34
|
(22) Ну слава яйцам!
|
|||
25
GROOVY
22.05.15
✎
00:35
|
(24) Ты меня прям напугал.
|
|||
26
H A D G E H O G s
22.05.15
✎
00:35
|
Сервер 1С скоро упрется в то, что ему будет не хватать и 32 процессорных ядер.
И фоновые задания выполни, и XDTO сериализацией позанимайся, И УФ отстрой. Хочется озадачивать клиента. |
|||
27
PR
22.05.15
✎
00:36
|
Вот для рест интерфейса сделать к гету и посту апдейт запрос вот это да, мне как раз кстати оказалось :))
|
|||
28
H A D G E H O G s
22.05.15
✎
00:36
|
(27) Чё?
|
|||
29
PR
22.05.15
✎
00:37
|
+(27) Сделать = сделали
|
|||
30
PR
22.05.15
✎
00:38
|
(28) Я говорю, в http://v8.1c.ru/o7/201312rest/index.htm написано про PATCH-запрос.
А сделали его не так давно, в какой-то 8.3.6. А у меня без него пришлось бы на серьезном проекте обмен по-другому рисовать. |
|||
31
Asmody
22.05.15
✎
00:40
|
пока в языке не будет лямбд, замыканий и функций первого класса, будет через то место
|
|||
32
Asmody
22.05.15
✎
00:40
|
и нормальной рефлексии
|
|||
33
PR
22.05.15
✎
00:42
|
(31), (32) Что это?
На мой взгляд не хватает возможности подписываться на события на сервере вместо постоянного опроса сервера путем получения с него данных и сравнения с уже полученными. |
|||
34
Garykom
гуру
22.05.15
✎
00:46
|
Мда...когда 1С 7.7 уже лет 5 как вовсю вышла и победно шагала и уже на горизонте появилась 8.0 ...
еще тогда были "программисты" которые дальше "констант" и "справочников" систему "не поняли" и не использовали в своих самописках-нетленках больше ничего... ЗЫ а Вы им "лямбд, замыканий и функций первого класса"... |
|||
35
Garykom
гуру
22.05.15
✎
00:47
|
(34)+ да стоит только добавить объектность реальную и все ... 3/4 "программистов 1С" того... сухари-сушить профу менять
|
|||
36
Garykom
гуру
22.05.15
✎
00:49
|
1- Уже сейчас а как это на СКД сделать?
2- Не можешь на СКД делай вручную! 1- Э вручную это как? 2- мля... |
|||
37
GROOVY
22.05.15
✎
00:55
|
(26) Так кластер можно сделать. Конечно не все сервисы разнести получится.
|
|||
38
H A D G E H O G s
22.05.15
✎
00:58
|
(37) Кластер... Вот еще вопрос - почему 1С не использует что-нибудь пошустрее TCP/IP, например, именованные каналы :-)
|
|||
39
H A D G E H O G s
22.05.15
✎
00:59
|
Ладно, я спать.
|
|||
40
Aleksey
22.05.15
✎
01:22
|
(8) В том и проблема что клиент не ждет результат
Или уже 1С формирует событие на клиенте по завершению фонового задания? |
|||
41
Asmody
22.05.15
✎
01:40
|
(40) До футур 1Су как отсюда до Антарктиды.
|
|||
42
Американец
22.05.15
✎
02:33
|
(38) На быстрой сети разницы практически не будет. На медленной - TCP/IP будет шустрее.
|
|||
43
oleg_km
22.05.15
✎
09:33
|
(38) А почему именованные каналы быстрее TCP/IP? Они же поверх последних реализованы.
|
|||
44
Американец
22.05.15
✎
09:58
|
(43) Есть локальные пайпы, а есть сетевые.
Если клиент и сервер запущены на одной машине, то пайпы будут быстрее потому, что локальные. А сетевые пайпы по факту это TCP сокеты. |
|||
45
oleg_km
22.05.15
✎
10:20
|
(44) Ну так и TCP/IP для работы с localhost совсем не нужно беспокоить сетевую карточку. Некоторые сниферы даже не видят этот трафик.
|
|||
46
Живой Ископаемый
22.05.15
✎
10:20
|
2(33) Код как параметр, вообще, возможность манипуляции кодом как данными, переменными
|
|||
47
Бубка Гоп
22.05.15
✎
10:28
|
(45) нахрена на localhost tcp если есть shared memory?
|
|||
48
Бубка Гоп
22.05.15
✎
10:30
|
(46) а оно надо? имхо, сфера разработки у 1с не та, которой могут потребоваться те же замыкания
|
|||
49
Бубка Гоп
22.05.15
✎
10:34
|
(48) + когда код надо сделать в какой то степени вариативным, можно воспользоваться тем же Выполнить(), и этого хватает за глаза. правда, сам я не сторонник такого подхода
|
|||
50
Гёдза
22.05.15
✎
10:38
|
(48) Как не та? В асинхронных вызовах очень не хватает замыканий
|
|||
51
Fragster
гуру
22.05.15
✎
10:40
|
Хочу так: нажал "провести и закрыть", окно документа залочилось, а мы дальше можем шарится по программе. когда док провелся - выскакивает оповещение (оно и сейчас выскакивает) и окошко закрывается.
|
|||
52
Fragster
гуру
22.05.15
✎
10:40
|
и чтобы любой вызов (в т.ч. на сервере, при пакетной олбработке) можно было бы асинхронным сделать.
|
|||
53
Живой Ископаемый
22.05.15
✎
10:42
|
2(48) У 1С есть мобильное приложение, в котором например реализованы в том числе и фоновые задания (если верить зазеркалью), и для мобильных приложений, например характерно асинхронное заполнение UITableView, когда сами ячейки заполнены, текстовая информация размещена, а картинки подгружаются асинхронно.
|
|||
54
Fragster
гуру
22.05.15
✎
10:42
|
а не то угребище, которое сейчас - из-за того, что разработчикам надо было затыкать дырку в веб клиенте в хроме, сделали то, что не однопоточно по поведению, причем достаточно просто подобная "псевдо немодальная асинхронность", как сейчас могла быть реализована и без изменения кода конфигурации.
|
|||
55
Живой Ископаемый
22.05.15
✎
10:43
|
(51)+1
|
|||
56
Гёдза
22.05.15
✎
10:47
|
(52) Не нужно путать асинхронность и многопоточность
|
|||
57
Бубка Гоп
22.05.15
✎
10:47
|
(54) пришлось бы долго ковырять платформу. а так - х*як х*як и в продакшен (с) #1cStyle
|
|||
58
Fragster
гуру
22.05.15
✎
10:48
|
(56) по факту одно другому не мешает.
|
|||
59
Fragster
гуру
22.05.15
✎
10:49
|
в (54) "не однопоточно" следует читать как "однопоточно" или даже как "неасинхронно"
|
|||
60
Гёдза
22.05.15
✎
10:50
|
(58) Не мешает, но это независимые понятия
|
|||
61
DmitrO
22.05.15
✎
10:50
|
(0)потому что 1С считает что достаточно многопоточного сервера
(54)согласен, вот мне тоже так кажется.. но почему-то они пошли на серьезное неудобство при разработке конфигураций на пустом месте, может мы чего-то не знаем. |
|||
62
Fragster
гуру
22.05.15
✎
10:53
|
(60) ну вот нодежс - он типа "асинхронный", но по факту асинхронные вызовы улетают в другие "обслуживающие" потоки, от которых потом приходят сообщения. А во многих случаях - обмен сообщениями еще и двусторонний. При этом собственно программный поток один.
|
|||
63
Живой Ископаемый
22.05.15
✎
10:58
|
Для этого 1Сникам нужно мыслить делегированием и КВО-радиостанциями. Наверное 1С считает что это для них сложно.
|
|||
64
DmitrO
22.05.15
✎
11:04
|
(63)1С даже считает, что для 1Сников сложно преобразование числа в строку и ссылки в GID в запросе :)
|
|||
65
DmitrO
22.05.15
✎
11:04
|
*GUID
|
|||
66
SUA
22.05.15
✎
11:09
|
(48)замыкания в 1с есть - по сути это директива &насервере, как бы это ни смешно выглядело (всю форму гоним в контекст сервера)
(46)Выполнить() а мультипоточность хочу... причем как раз для записи и тяжелого кода в основном, а то бесит когда даже в типовом ЖР ставишь отбор и сразу запускаешь 2ю сессию, не говоря уже про обработки обслуживания с тяжелыми запросами (запустили - ждем полчаса - потом делаем 2 минуты) синхронное или асинхронное поведение тут совсем неважно, и фоновыми заданиями не отделаться - если задача попарсить большой excel файл с клиента |
|||
67
Лефмихалыч
22.05.15
✎
11:10
|
(0) нынче можно одновременно формировать грузовой отчет и колбасить документы, пока он формируется, в одном и том же сеансе. Чем это не многопоточность?
|
|||
68
Лефмихалыч
22.05.15
✎
11:11
|
(66) фоновыми заданиями попарсить большой фал с клиента нет проблем. Для этого всего лишь надо файл либо на сервер передать, либо туда, куда у сервера доступ есть.
|
|||
69
Dен
22.05.15
✎
11:13
|
H A D G E H O G s
Приложи, пожалуйста, обработку из (3), на которой проверялась многопоточность. По показанным кускам кода не понятно, как все это запускается. |
|||
70
H A D G E H O G s
22.05.15
✎
11:24
|
(44) Я про локальную машину и про вот эти замеры производительности.
http://habrahabr.ru/post/81067/ |
|||
71
H A D G E H O G s
22.05.15
✎
11:25
|
(69) Нет, я спец. не показал код запуска. Это все таки не документированная возможность.
|
|||
72
mehfk
22.05.15
✎
11:32
|
(71) Неужто в ВК создается n потоков, из которых генерируется внешнее событие?
|
|||
73
H A D G E H O G s
22.05.15
✎
11:35
|
(72) Нет. Поток должна создать (и реагировать на него) сама 1С. Если ты создаешь поток сам и этот поток что-то делает с 1С (запускает код 1С) - все идет по звезде.
|
|||
74
SUA
22.05.15
✎
12:27
|
(68)да,
- перегнать файл - установить эксель или прочие приблуды для его разбора на сервер, порадоваться в очередной раз забытым граблям запуска экселя от системной учетки - перегнать результат обратно мелочь какая... особенно для тонких клиентов (там где они реально нужны в связи с узким каналом связи например) |
|||
75
SUA
22.05.15
✎
12:28
|
а клиентский комп с гигабайтами оперативы и i5 пускай подождет
|
|||
76
Гёдза
22.05.15
✎
12:29
|
(74) переходи на xslx. его можно без екселя парсить
|
|||
77
Волшебник
модератор
22.05.15
✎
12:30
|
(31) Восьмёрка ещё сыровата, конечно...
|
|||
78
Бубка Гоп
22.05.15
✎
12:32
|
(76) и обычный xls тоже
|
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |