|
Подключиться к действующему процессу (через веб запрос), запустить команду, и отключиться
|
|||
---|---|---|---|
#18+
Доброго времени суток. Уважаемые коллеги , если знаете , то подскажите пожалуйста как реализовать следующею задачу: Необходимо подключится к работающему процессу, выполнить команду, с инициированными объектами (внутри работающего процесса), и получить результат. ---------------------- Более подробно: ---------------------- Дано: Есть процесс Cache' запущенный в параллельном потоке через JOB. Нам известен номер ID запущенного процесса. Необходимо: 1) Через вэб запрос подключится к этому процессу 2) Запустить команду, 3) Прочитать результат ранее выполненных команд (за промежуток между запросами) 4) Отключится от процесса и через определенное время повторить итерацию (реализовано на JS) Реализация CSP класса: Код: html 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. 64. 65. 66. 67. 68. 69. 70. 71. 72. 73. 74. 75. 76. 77. 78. 79. 80. 81. 82. 83. 84. 85. 86. 87. 88. 89. 90. 91. 92. 93. 94. 95. 96. 97. 98. 99. 100. 101. 102. 103. 104. 105. 106. 107. 108. 109. 110. 111. 112. 113. 114. 115. 116. 117. 118. 119. 120. 121.
Я уверен , что данная возможность существует. Это уверенность родилась после того, как увидел работу дебагера в Ателиере. Который выполняет ровным счетом тоже самое. Главный вопрос состоит в том, как это реализовать. ... |
|||
:
Нравится:
Не нравится:
|
|||
14.05.2018, 19:03 |
|
Подключиться к действующему процессу (через веб запрос), запустить команду, и отключиться
|
|||
---|---|---|---|
#18+
Вы это в продуктовой разработке собираетесь использовать? Я бы, мягко говоря, не советовал. ... |
|||
:
Нравится:
Не нравится:
|
|||
15.05.2018, 11:41 |
|
Подключиться к действующему процессу (через веб запрос), запустить команду, и отключиться
|
|||
---|---|---|---|
#18+
Блок А.Н., Добрый день . Нет. Этот пример небудет использоваться в продакшен. О максимально упрощен, для понимания задачи. Повторюсь: суть задачи состоит в том , что нужн механизм подключения к работающему процессу, в котором уже инициированы объекты. ... |
|||
:
Нравится:
Не нравится:
|
|||
15.05.2018, 11:50 |
|
Подключиться к действующему процессу (через веб запрос), запустить команду, и отключиться
|
|||
---|---|---|---|
#18+
MyasnikovIAНеобходимо подключится к работающему процессу, выполнить команду, с инициированными объектами (внутри работающего процесса), и получить результат. Возможно все решить гораздо проще... "Общайтесь" с процессом через некий глобал. Пусть тот процесс "посматривает" в него на предмет "не появились ли задания для меня". Если такие есть - пусть выполняет. Параметры можно брать там же... О результатах пусть пишет в глобал. Их от туда можно будет прочитать. И не старайтесь усложнять себе жизнь "технологиями". ... |
|||
:
Нравится:
Не нравится:
|
|||
16.05.2018, 08:50 |
|
Подключиться к действующему процессу (через веб запрос), запустить команду, и отключиться
|
|||
---|---|---|---|
#18+
krvsa, Добрый день. В приведенном мною примере есть такой фрагмент кода: Код: html 1. 2. 3. 4.
в нем как раз и реализован тот метод, который вы рекомендуете. Недостаток этого метода состоит в том, что внутри запущенного параллельного процесса есть бесконечный цикл с задержкой в 1 секунду. Вот как раз эту задержку хотелось бы убрать. Если сделать без конечный цикл, без задержки (удалить "h 1" в класс методе "loop(ip)"), то он поглотит много ресурсов. Опять же не наш вариант. Может, есть возможность создать механизм, который останавливает, ставит выполнение процесса на паузу, до момента появления глобала. Когда глобал появляется процесс снимается с паузы и продолжает работу. Это конечно фантазия, но кто его знает, может такой механизм уже существует. ... |
|||
:
Нравится:
Не нравится:
|
|||
16.05.2018, 09:35 |
|
Подключиться к действующему процессу (через веб запрос), запустить команду, и отключиться
|
|||
---|---|---|---|
#18+
MyasnikovIAНедостаток этого метода состоит в том, что внутри запущенного параллельного процесса есть бесконечный цикл с задержкой в 1 секунду. Вот как раз эту задержку хотелось бы убрать. Это опять какая-то самоцель? MyasnikovIAЕсли сделать без конечный цикл, без задержки (удалить "h 1" в класс методе "loop(ip)"), то он поглотит много ресурсов. Опять же не наш вариант. Дабы процесс не жрал ресурсы, ИС рекомендовали понижать ему приоритет. Для этого у нас есть вот такая функция... Код: javascript 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14.
MyasnikovIAМожет, есть возможность создать механизм, который останавливает, ставит выполнение процесса на паузу, до момента появления глобала. Когда глобал появляется процесс снимается с паузы и продолжает работу. Это конечно фантазия, но кто его знает, может такой механизм уже существует. Тогда зачем вообще этот процесс? Зачем на сервере висеть чему-то "спящему" и ничего не делающему? Эта проблема вообще решается на раз! На сервере просто ничего не запускается если это никому не нужно. А вот если кому-то это понадобилось - запускается и работает. Отвечает на запросы. Если всем ответили - работа заканчивается. ... |
|||
:
Нравится:
Не нравится:
|
|||
16.05.2018, 10:32 |
|
Подключиться к действующему процессу (через веб запрос), запустить команду, и отключиться
|
|||
---|---|---|---|
#18+
Задержку можно сделать намного меньше, например hang 0.05 (меньше 20 мсек не советую, не стабильно... и меньше 15мсек может превращаться в 0 мсек). Находиться в "спячке" процесс может на команде Lock, но могут быть трудности с синхронизацией. Лучше для "спячки"-"пробуждения" использовать механизм обмена сообщениями между процессами. Пробуждение практически мгновенно, да и саму команды, результаты передаются в теле сообщений - полная изоляция. ... |
|||
:
Нравится:
Не нравится:
|
|||
16.05.2018, 11:37 |
|
Подключиться к действующему процессу (через веб запрос), запустить команду, и отключиться
|
|||
---|---|---|---|
#18+
AlexKB, Добрый день. Ранее незнал, что в оператор "H" можно указывать вторым аргументом числа с запятой. Сейчас буду знать. Я не совсем понял про механизм обмена между процессами. можите поведать по подробнее, или подсказать где посмотреть пример такого обмена . За ранее спасибо. ... |
|||
:
Нравится:
Не нравится:
|
|||
16.05.2018, 12:13 |
|
Подключиться к действующему процессу (через веб запрос), запустить команду, и отключиться
|
|||
---|---|---|---|
#18+
MyasnikovIA, The %SYSTEM.Event class provides an interface to the Cache Event API. в документации. Где то на сайте ИС есть пример использования. Мои собственные примеры сейчас далеко... искать надо... ... |
|||
:
Нравится:
Не нравится:
|
|||
16.05.2018, 12:20 |
|
Подключиться к действующему процессу (через веб запрос), запустить команду, и отключиться
|
|||
---|---|---|---|
#18+
AlexKB, Спасибо. по ищу ... |
|||
:
Нравится:
Не нравится:
|
|||
16.05.2018, 12:36 |
|
Подключиться к действующему процессу (через веб запрос), запустить команду, и отключиться
|
|||
---|---|---|---|
#18+
Вот целая тема про это %SYSTEM.Event ... http://www.sql.ru/forum/1002374/sinhronizaciya-processov-pri-rasparallelivanii-zadachi-sredstvami-cache-event-api?hl=system event ... |
|||
:
Нравится:
Не нравится:
|
|||
16.05.2018, 14:28 |
|
|
start [/forum/topic.php?fid=39&msg=39645529&tid=1556258]: |
0ms |
get settings: |
8ms |
get forum list: |
14ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
36ms |
get topic data: |
11ms |
get forum data: |
3ms |
get page messages: |
48ms |
get tp. blocked users: |
1ms |
others: | 259ms |
total: | 388ms |
0 / 0 |