SharePoint SPThreadPool
От: -n1l-  
Дата: 10.09.14 08:27
Оценка:
Здравствуйте, те кто работал, работает с SP, знаете ли вы о том, как работает данный класс? (SP2010)
Аналогичен ли он описанному у рихтера ThreadPool'у?

PS
Описание на MSDN опять оставляет желать лучшего.
Re: SharePoint SPThreadPool
От: /Forester/ Россия http://www.akteam.ru
Дата: 10.09.14 20:40
Оценка:
Здравствуйте, -n1l-, Вы писали:

N>Здравствуйте, те кто работал, работает с SP, знаете ли вы о том, как работает данный класс? (SP2010)

N>Аналогичен ли он описанному у рихтера ThreadPool'у?

Класс не использовал, посмотрел декомпилером.

SPThreadPool — это два вспомогательных метода (QueueUserWorkItemWithImpersonation(WaitCallback callback, object state) и QueueUserWorkItemWithUserToken(WaitCallback callback, object state, SPUserToken token)), которые внутри дергают все тот же ThreadPool.QueueUserWorkItem. Задача обоих методов — обеспечить выполнение callback'а под учеткой определенного пользователя. Для этого перед тем как дернуть callback выполняется либо SPSecurity.RunAsUser, либо Identity.Impersonate, либо callback дергается под дефолтной учеткой потока.

Есть там еще парочка internal методов (RunAsyncWorkItemWithImpersonation и RunAsyncWorkItemWithUserToken). Они сводятся к вызову BeginInvoke того же промежуточного метода, что и для QueueUserWorkItem*, который прежде чем дернуть callback выполняет настройку учетной записи потока.

Так что SPThreadPool — это всего лишь helper'ы, настраивающие контекст выполнения задачи.
Re[2]: SharePoint SPThreadPool
От: -n1l-  
Дата: 11.09.14 03:57
Оценка:
Здравствуйте, /Forester/, Вы писали:
F>Класс не использовал, посмотрел декомпилером.
Спасибо за ответ. Тоже смотрел, смутила эта учетка.
Непонимаю, если вызывать ее безотносительно учетки, что тогда будет.
Например вызывать метод QueueUserWorkItemWithImpersonation на каком-нибудь эвентресивере.
Он сломается? Или нет. Эх придется экспериментировать.
Re[3]: SharePoint SPThreadPool
От: gandjustas Россия http://blog.gandjustas.ru/
Дата: 11.09.14 14:47
Оценка:
Здравствуйте, -n1l-, Вы писали:

N>Например вызывать метод QueueUserWorkItemWithImpersonation на каком-нибудь эвентресивере.

N>Он сломается? Или нет. Эх придется экспериментировать.

А тебе зачем?
Re[4]: SharePoint SPThreadPool
От: -n1l-  
Дата: 11.09.14 14:53
Оценка:
Задача есть выполнить действия в разных потоках.
Re[5]: SharePoint SPThreadPool
От: gandjustas Россия http://blog.gandjustas.ru/
Дата: 11.09.14 14:54
Оценка:
Здравствуйте, -n1l-, Вы писали:

N>Задача есть выполнить действия в разных потоках.


Зачем?
Re[6]: SharePoint SPThreadPool
От: -n1l-  
Дата: 11.09.14 15:10
Оценка:
Здравствуйте, gandjustas, Вы писали:
G>Зачем?

Причин много, фоновая обработка, быстрота обработки и так далее.
Re[7]: SharePoint SPThreadPool
От: gandjustas Россия http://blog.gandjustas.ru/
Дата: 11.09.14 15:23
Оценка:
Здравствуйте, -n1l-, Вы писали:

N>Здравствуйте, gandjustas, Вы писали:

G>>Зачем?

N>Причин много, фоновая обработка, быстрота обработки и так далее.


Фоновая обработка чего? Быстрота обработки чего?

Вообще в веб-приложениях вредно запускать что-то параллельно, ибо это начинает кушать потоки, которые нужны для обработки запросов.
Re[8]: SharePoint SPThreadPool
От: -n1l-  
Дата: 11.09.14 15:46
Оценка:
Здравствуйте, gandjustas, Вы писали:

G>Фоновая обработка чего? Быстрота обработки чего?

Определенных данных. Сложная логика, просто так не объяснить.
G>Вообще в веб-приложениях вредно запускать что-то параллельно, ибо это начинает кушать потоки, которые нужны для обработки запросов.
Посему использую ThreadPool, добавляя в очередь.
Re[9]: SharePoint SPThreadPool
От: gandjustas Россия http://blog.gandjustas.ru/
Дата: 11.09.14 15:57
Оценка:
Здравствуйте, -n1l-, Вы писали:

N>Здравствуйте, gandjustas, Вы писали:


G>>Фоновая обработка чего? Быстрота обработки чего?

N>Определенных данных. Сложная логика, просто так не объяснить.
А данные откуда берутся? Есть подозрение, что основное время "обработки" — запросы, а их лучше не параллелить через Thread Pool, это убъет производительность фронтэнда.

G>>Вообще в веб-приложениях вредно запускать что-то параллельно, ибо это начинает кушать потоки, которые нужны для обработки запросов.

N>Посему использую ThreadPool, добавляя в очередь.
ASP.NET использует тот же пул если что, и ты ему мешаешь. А в случае шарика (который и так медленный) мешать ему нельзя, вообще неюзабельным станет.
Re[9]: SharePoint SPThreadPool
От: AndrewVK Россия http://blogs.rsdn.org/avk
Дата: 12.09.14 00:34
Оценка:
Здравствуйте, -n1l-, Вы писали:

G>>Фоновая обработка чего? Быстрота обработки чего?

N>Определенных данных. Сложная логика, просто так не объяснить.

Сложную логику лучше вынести в отдельный сервис, а не насиловать веб-сервер. Ну и UI соответственно организовать через какой нибудь Signal/R.
... << RSDN@Home 1.0.0 alpha 5 rev. 0 on Windows 8 6.2.9200.0>>
AVK Blog
Re[10]: SharePoint SPThreadPool
От: -n1l-  
Дата: 12.09.14 12:05
Оценка:
Здравствуйте, gandjustas, Вы писали:

G>А данные откуда берутся? Есть подозрение, что основное время "обработки" — запросы, а их лучше не параллелить через Thread Pool, это убъет производительность фронтэнда.

Данные берутся из итема одного списка. Список недоступен для пользователей, вообще вся функциональность ui-шарика для пользователей недоступна, доступны только определенные страницы. Так вот на список повешен хендлер, при добавлении нового итема в этот список начинается его парсинг и затем обработка. Затем либо удаление, если все хорошо, либо либо он остается в списке если произошла ошибка в обработке и содержит инфу об ошибке.
Юзеры с этим списком не работают.


G>ASP.NET использует тот же пул если что, и ты ему мешаешь. А в случае шарика (который и так медленный) мешать ему нельзя, вообще неюзабельным станет.

Так то везде тот же пул, системный, другого нет.
Re[10]: SharePoint SPThreadPool
От: -n1l-  
Дата: 12.09.14 12:06
Оценка:
Здравствуйте, AndrewVK, Вы писали:

AVK>Здравствуйте, -n1l-, Вы писали:


G>>>Фоновая обработка чего? Быстрота обработки чего?

N>>Определенных данных. Сложная логика, просто так не объяснить.

AVK>Сложную логику лучше вынести в отдельный сервис, а не насиловать веб-сервер. Ну и UI соответственно организовать через какой нибудь Signal/R.

Поясните пожалуйста. Вы предлагаете использовать wcf?
Re[11]: SharePoint SPThreadPool
От: gandjustas Россия http://blog.gandjustas.ru/
Дата: 12.09.14 15:23
Оценка:
Здравствуйте, -n1l-, Вы писали:

N>Здравствуйте, gandjustas, Вы писали:


G>>А данные откуда берутся? Есть подозрение, что основное время "обработки" — запросы, а их лучше не параллелить через Thread Pool, это убъет производительность фронтэнда.

N>Данные берутся из итема одного списка. Список недоступен для пользователей, вообще вся функциональность ui-шарика для пользователей недоступна, доступны только определенные страницы. Так вот на список повешен хендлер, при добавлении нового итема в этот список начинается его парсинг и затем обработка. Затем либо удаление, если все хорошо, либо либо он остается в списке если произошла ошибка в обработке и содержит инфу об ошибке.
N>Юзеры с этим списком не работают.
Тогда зачем Thread Pool? Для асинхронного post-ресивера и так отдельный поток запускается. Так как задача вполняется в фоне, то запускать несколько потоков вообще вредно, фоновые задачи должны кушать минимум ресурсов.
Re[11]: SharePoint SPThreadPool
От: AndrewVK Россия http://blogs.rsdn.org/avk
Дата: 12.09.14 16:15
Оценка:
Здравствуйте, -n1l-, Вы писали:

AVK>>Сложную логику лучше вынести в отдельный сервис, а не насиловать веб-сервер. Ну и UI соответственно организовать через какой нибудь Signal/R.

N>Поясните пожалуйста. Вы предлагаете использовать wcf?

По желанию. WCF — неплохой выбор. Но можно и WebAPI + Signal/R для нотификаций.
... << RSDN@Home 1.0.0 alpha 5 rev. 0 on Windows 8 6.2.9200.0>>
AVK Blog
Re[12]: SharePoint SPThreadPool
От: -n1l-  
Дата: 13.09.14 10:52
Оценка:
Здравствуйте, gandjustas, Вы писали:

G>Тогда зачем Thread Pool? Для асинхронного post-ресивера и так отдельный поток запускается. Так как задача вполняется в фоне, то запускать несколько потоков вообще вредно, фоновые задачи должны кушать минимум ресурсов.


Спасибо, уточню насчет надобности потоков.
Re[12]: SharePoint SPThreadPool
От: -n1l-  
Дата: 13.09.14 10:53
Оценка:
Здравствуйте, AndrewVK, Вы писали:

AVK>По желанию. WCF — неплохой выбор. Но можно и WebAPI + Signal/R для нотификаций.


Подробнее можете объяснить свою идею?
Re[10]: SharePoint SPThreadPool
От: gandjustas Россия http://blog.gandjustas.ru/
Дата: 13.09.14 11:40
Оценка:
Здравствуйте, AndrewVK, Вы писали:

AVK>Здравствуйте, -n1l-, Вы писали:


G>>>Фоновая обработка чего? Быстрота обработки чего?

N>>Определенных данных. Сложная логика, просто так не объяснить.

AVK>Сложную логику лучше вынести в отдельный сервис, а не насиловать веб-сервер. Ну и UI соответственно организовать через какой нибудь Signal/R.


Написанное коррелирует с sharepoint чуть менее, чем никак.
Re[13]: SharePoint SPThreadPool
От: AndrewVK Россия http://blogs.rsdn.org/avk
Дата: 13.09.14 14:26
Оценка:
Здравствуйте, -n1l-, Вы писали:

AVK>>По желанию. WCF — неплохой выбор. Но можно и WebAPI + Signal/R для нотификаций.

N>Подробнее можете объяснить свою идею?

Что именно в идее непонятно?
... << RSDN@Home 1.0.0 alpha 5 rev. 0 on Windows 8 6.2.9200.0>>
AVK Blog
Re[11]: SharePoint SPThreadPool
От: AndrewVK Россия http://blogs.rsdn.org/avk
Дата: 13.09.14 14:26
Оценка:
Здравствуйте, gandjustas, Вы писали:

G>Написанное коррелирует с sharepoint чуть менее, чем никак.


И?
... << RSDN@Home 1.0.0 alpha 5 rev. 0 on Windows 8 6.2.9200.0>>
AVK Blog
Re[14]: SharePoint SPThreadPool
От: -n1l-  
Дата: 13.09.14 16:10
Оценка:
Здравствуйте, AndrewVK, Вы писали:

AVK>Что именно в идее непонятно?


я никогда не скрещивал asp.net и wcf, не понимаю как это все будет вместе работать, за что будет отвечать сервис, за что веб часть. Как они будут связаны, и так далее. В общем можно подробностей? Подробнее о вашей идее.
Re[15]: SharePoint SPThreadPool
От: AndrewVK Россия http://blogs.rsdn.org/avk
Дата: 13.09.14 20:06
Оценка:
Здравствуйте, -n1l-, Вы писали:

N>я никогда не скрещивал asp.net и wcf, не понимаю как это все будет вместе работать, за что будет отвечать сервис, за что веб часть. Как они будут связаны, и так далее. В общем можно подробностей? Подробнее о вашей идее.


Очень общий вопрос, на который долго и сложно отвечать. На конкретные вопросы отвечу, а тут извини, не стану.
... << RSDN@Home 1.0.0 alpha 5 rev. 0 on Windows 8 6.2.9200.0>>
AVK Blog
Re[16]: SharePoint SPThreadPool
От: -n1l-  
Дата: 14.09.14 14:25
Оценка:
Хорошо.
1) Для чего обычно создают wcf сервисы в помощь asp.net приложению?
Re[17]: SharePoint SPThreadPool
От: AndrewVK Россия http://blogs.rsdn.org/avk
Дата: 15.09.14 00:17
Оценка:
Здравствуйте, -n1l-, Вы писали:

N>1) Для чего обычно создают wcf сервисы в помощь asp.net приложению?


Из моего опыта:
1) Когда нужно проявлять активность не в ответ на запрос пользователя;
2) Когда долго нужно что то делать в фоне;
3) Когда внезапное пришибание домена, которое может сделать IIS, недопустимо;
4) Когда веб-часть кластеризуется хорошо, а выносимый кусок — очень плохо;
5) Когда нужны сторонние внешние out of process сервисы и управление ими;
6) Когда кусок кода может нарушить стабильность веб-сервера из-за багов;
... << RSDN@Home 1.0.0 alpha 5 rev. 0 on Windows 8 6.2.9200.0>>
AVK Blog
Re[18]: SharePoint SPThreadPool
От: -n1l-  
Дата: 17.09.14 10:48
Оценка:
Здравствуйте, AndrewVK, Вы писали:

AVK>Здравствуйте, -n1l-, Вы писали:


N>>1) Для чего обычно создают wcf сервисы в помощь asp.net приложению?


AVK>Из моего опыта:

AVK>1) Когда нужно проявлять активность не в ответ на запрос пользователя;
AVK>2) Когда долго нужно что то делать в фоне;
AVK>3) Когда внезапное пришибание домена, которое может сделать IIS, недопустимо;
AVK>4) Когда веб-часть кластеризуется хорошо, а выносимый кусок — очень плохо;
AVK>5) Когда нужны сторонние внешние out of process сервисы и управление ими;
AVK>6) Когда кусок кода может нарушить стабильность веб-сервера из-за багов;

А как это все деплоится?
Что будет результатом доп проекта wcf для asp.net приложения?
Re[19]: SharePoint SPThreadPool
От: AndrewVK Россия http://blogs.rsdn.org/avk
Дата: 17.09.14 12:01
Оценка:
Здравствуйте, -n1l-, Вы писали:

N>А как это все деплоится?


По разному. Ты опять какие то вопросы задаешь, на которые для ответа нужно статью писать.

N>Что будет результатом доп проекта wcf для asp.net приложения?


Windows-сервис в виде exe файла обычно.
... << RSDN@Home 1.0.0 alpha 5 rev. 0 on Windows 8 6.2.9200.0>>
AVK Blog
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.