Новые сообщения [новые:0]
Дайджест
Горячие темы
Избранное [новые:0]
Форумы
Пользователи
Статистика
Статистика нагрузки
Мод. лог
Поиск
|
17.08.2017, 12:16
|
|||
---|---|---|---|
Очередь потоков |
|||
#18+
Есть задача, считывать данные из бд и запускать в отдельных потоках метод, который будет обрабатывать данные и записывать их в БД. Никакого ГУИ, это служба windows. Кол-во потоков ограничено параметром из конфига. Подскажите, пожалуйста, простое и удобное решение, дабы не изобретать велосипед. Что лучше подойдет для решения задачи: таски или потоки? ... |
|||
:
Нравится:
Не нравится:
|
|||
|
17.08.2017, 12:42
|
|||
---|---|---|---|
Очередь потоков |
|||
#18+
ИМХО с потоками проще. При старте создал сколько надо, а дальше каждый в цикле: прочитал, посчитал, записал. ... |
|||
:
Нравится:
Не нравится:
|
|||
|
17.08.2017, 13:05
|
|||
---|---|---|---|
Очередь потоков |
|||
#18+
Супер_Пав, можно завернуть все это дело в блоки TPL Dataflow ... будет аккуратненько... вся инфраструктура для этого там есть... ... |
|||
:
Нравится:
Не нравится:
|
|||
|
17.08.2017, 13:11
|
|||
---|---|---|---|
Очередь потоков |
|||
#18+
buserСупер_Пав, можно завернуть все это дело в блоки TPL Dataflow ... будет аккуратненько... вся инфраструктура для этого там есть... сейчас посмотрю, спасибо ... |
|||
:
Нравится:
Не нравится:
|
|||
|
17.08.2017, 13:49
|
|||
---|---|---|---|
Очередь потоков |
|||
#18+
Супер_Пав, Если нет гуи которое тормозит, то потоки не нужны....в общем случае. ... |
|||
:
Нравится:
Не нравится:
|
|||
|
17.08.2017, 14:31
|
|||
---|---|---|---|
Очередь потоков |
|||
#18+
Написал небольшой класс, который удовлетворяет моим задачам. Код: c# 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. 22. 23. 24. 25. 26. 27. 28. 29. 30. 31. 32. 33. 34. 35. 36. 37. 38. 39. 40. 41. 42. 43. 44. 45. 46. 47. 48. 49. 50. 51. 52. 53. 54. 55. 56. 57. 58. 59. 60. 61. 62. 63.
Код: c# 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. 22. 23. 24. 25. 26. 27. 28.
Критика адекватная приветствуется. ... |
|||
:
Нравится:
Не нравится:
|
|||
|
17.08.2017, 15:58
|
|||
---|---|---|---|
|
|||
Очередь потоков |
|||
#18+
https://msdn.microsoft.com/ru-ru/library/ee789351(v=vs.100).aspx можно тупо взять пример, инициализировать с параметром 1 и тогда все таски в этом шадулере будут выполняться последовательно, а не паралельно. И не надо изобретать велосипед ... |
|||
:
Нравится:
Не нравится:
|
|||
|
17.08.2017, 16:58
|
|||
---|---|---|---|
Очередь потоков |
|||
#18+
Супер_Пав, Есть специальные многопоточные коллекции, чтобы не педалить через lock. Я бы лучше использовал Quartz. ... |
|||
:
Нравится:
Не нравится:
|
|||
|
17.08.2017, 17:02
|
|||
---|---|---|---|
Очередь потоков |
|||
#18+
Roman Mejtes https://msdn.microsoft.com/ru-ru/library/ee789351(v=vs.100).aspx можно тупо взять пример, инициализировать с параметром 1 и тогда все таски в этом шадулере будут выполняться последовательно, а не паралельно. И не надо изобретать велосипед не скажу, что написал большой велосипед. У меня чтение данных из бд заложено по таймеру. Инициализация кол-ва потоков происходит 1 раз, дальше добавляю новые таски по мере чтения данных из БД ... |
|||
:
Нравится:
Не нравится:
|
|||
|
17.08.2017, 17:34
|
|||
---|---|---|---|
|
|||
Очередь потоков |
|||
#18+
Супер_Пав, дело ваше, вы просили критику, я вам предоставил альтернативный вариант, от MS, его можно сильно упростить, если не требуется параллелизация выполненения. Используйте свой, если вам он ближе. Смысл в том, что создавая таски, они так и так у вас выполняются в рамках какого то шадулера, которым вы ни как не управляете. А представленном мною варианте, вы используйте свой шедулер, можно сделать его статичным и использовать всего, когда нужно закинуть в очередь выполнения новый таск и все они будут ожидать выполнение предыдущих. Я вас не агетирую использовать, просто показал альтернативу, более кононичную , не зря же придумали планировщики :) ... |
|||
:
Нравится:
Не нравится:
|
|||
|
17.08.2017, 18:02
|
|||
---|---|---|---|
Очередь потоков |
|||
#18+
Roman MejtesСупер_Пав, дело ваше, вы просили критику, я вам предоставил альтернативный вариант, от MS, его можно сильно упростить, если не требуется параллелизация выполненения. Используйте свой, если вам он ближе. Смысл в том, что создавая таски, они так и так у вас выполняются в рамках какого то шадулера, которым вы ни как не управляете. А представленном мною варианте, вы используйте свой шедулер, можно сделать его статичным и использовать всего, когда нужно закинуть в очередь выполнения новый таск и все они будут ожидать выполнение предыдущих. Я вас не агетирую использовать, просто показал альтернативу, более кононичную , не зря же придумали планировщики :) Нене, спасибо за ответ. Я обязательно посмотрю и изучу материал=) ... |
|||
:
Нравится:
Не нравится:
|
|||
|
17.08.2017, 22:02
|
|||
---|---|---|---|
Очередь потоков |
|||
#18+
Petro123Супер_Пав, Если нет гуи которое тормозит, то потоки не нужны....в общем случае. +1 Скуль-сервер сам разрулит запросы лучше ... |
|||
:
Нравится:
Не нравится:
|
|||
|
17.08.2017, 22:46
|
|||
---|---|---|---|
Очередь потоков |
|||
#18+
Cat2, и добавлю, что фоновый ПРОЦЕСС быстрее чем поток. ... |
|||
:
Нравится:
Не нравится:
|
|||
|
23.08.2017, 17:02
|
|||
---|---|---|---|
Очередь потоков |
|||
#18+
Супер_Павсчитывать данные из бд и запускать в отдельных потоках метод, который будет обрабатывать данные и записывать их в БД Делать последовательно. Или у вас временные затраты на расчеты этих данных сопоставимы по скорости чтения/записи в БД? ... |
|||
:
Нравится:
Не нравится:
|
|||
|
23.08.2017, 21:10
|
|||
---|---|---|---|
Очередь потоков |
|||
#18+
Cat2Petro123Супер_Пав, Если нет гуи которое тормозит, то потоки не нужны....в общем случае. +1 Скуль-сервер сам разрулит запросы лучше ересь несете оба ... |
|||
:
Нравится:
Не нравится:
|
|||
|
23.08.2017, 21:14
|
|||
---|---|---|---|
Очередь потоков |
|||
#18+
а для задачи ТС есть готовые вещи, типа - https://msdn.microsoft.com/ru-ru/library/ee362541(v=sql.111).aspx ... |
|||
:
Нравится:
Не нравится:
|
|||
|
24.08.2017, 10:35
|
|||
---|---|---|---|
Очередь потоков |
|||
#18+
ViPRosа для задачи ТС есть готовые вещи, типа - https://msdn.microsoft.com/ru-ru/library/ee362541(v=sql.111).aspx Это не то. ... |
|||
:
Нравится:
Не нравится:
|
|||
|
|
start [/forum/topic.php?fid=20&mobile=1&tid=1399752]: |
0ms |
get settings: |
9ms |
get forum list: |
15ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
143ms |
get topic data: |
11ms |
get forum data: |
3ms |
get page messages: |
48ms |
get tp. blocked users: |
2ms |
others: | 14ms |
total: | 253ms |
0 / 0 |