![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Создать несколько сервисов из одного [D6, Win2k]
msgipss © (2004-12-29 07:20:00)Не совсем понятно из названия, сорри. Задача в следующем:
Я сделал сервис winnt, при запуске он читает конфигурационыый файл и работает в соответствии с ним.
А я хочу запустить его еще раз с др.файлом конфигурации, чтобы работал тоже. Т.е. в принципе сервисы одни и те же (код один и тот) но работают они по разному в соответствии с конфигурацией. И управлять ими соответственно можно по отдельности.
Например при регистраци сервиса, он читает описание и регистрируется под тем именем что прочитал в описании.
Как это можно сделать - или никак ???
DiamondShark (2004-12-29 18:20:00) [1]
> Суслик © (29.12.04 17:25) [33]
> Что значит выражение?
Не правильно сказал. "Подпустить дурочку".
Это ещё у Райкина было.
> Cobalt © (29.12.04 17:54) [35]
> 2 DiamondShark ©
> А вы используете InterBase или FireBird?
Sybase ASA.
Я про него говорил.
Digitman (2004-12-29 17:54:00) [2]и вновь крайним окажусь я ?.. и "кишиневские" намеки лупят таки по=моему "сранолюбию" ...
Cobalt (2004-12-29 17:54:00) [3]2 Digitman ©
Ну, писать сервис, который предназначен только для того, что бы в зависимости от параметров, стартует другой сервис (с различными параметрами) - на это моя фантазия явно неспособна ;-)
2 DiamondShark ©
А вы используете InterBase или FireBird?
Sandman25 (2004-12-29 17:46:00) [4][33] Суслик © (29.12.04 17:25)
Причем это не кишиневский диалект русского языка, я такую фразу тоже впервые слышу :)
Суслик (2004-12-29 17:25:00) [5]
> [31] DiamondShark © (29.12.04 16:59)
> Началось "пускание дурочки".
Что значит выражение?
Яндекс ответа не дал :)
Digitman (2004-12-29 17:08:00) [6]
> Cobalt © (29.12.04 16:44) [30]
> Насколько я понял из ещё [13]
не очевидно.
если ув.DiamondShark сотворяет свой собственный сиквел-сервис, то это, imho, - из другой оперы)
DiamondShark (2004-12-29 16:59:00) [7]Началось "пускание дурочки".
Ню-ню. Развлекайся...
Cobalt (2004-12-29 16:44:00) [8]2 Digitman © (29.12.04 15:45) [29]
Насколько я понял из ещё [13]
экз-р сиквэл-сервера с теми или иными параметрами - и есть тот самый сервер-сервис в одном лице.
Digitman (2004-12-29 15:45:00) [9]
> возражение о "дополнительных ресурсах" было от тебя. Причём,
> обосновать ты его не потрудился
мне потрудиться привести монстрообразные структуры KPROCESS, KTHREAD и все те что с ними неразрывно связаны ? мне объяснять тебе, что все эти структуры требуют ресурсов ?
> UDF
UDF исполняется в АП того процесса, что ее грузит и задействует .. и это не имеет никакого отношения к процессу твоего сервиса, стартующего экз-р сиквэл-сервера с теми или иными параметрами
DiamondShark (2004-12-29 15:25:00) [10]Ещё один пример. Всё тот же SQL-сервер.
Он допускает установку внешних UDF. В принципе, любая UDF может свалить процесс сервиса.
Я хочу запустить две БД для разных задач, но изолировать их, чтобы критическая ошибка в одной не выбивала другую.
DiamondShark (2004-12-29 15:13:00) [11]
> Digitman © (29.12.04 14:54) [26]
А должны?
В 13 -- пример сервиса, в котором не нужно усложнения с реализацией независимых наборов настроек в одном процессе.
Есть возражения? Можешь обосновать, что этот продукт спроектирован неграмотно?
А 18, ты уж извиняй, но возражение о "дополнительных ресурсах" было от тебя. Причём, обосновать ты его не потрудился. Я что-то не правильно сказал? Ну так скажи как правильно! Тебе ведь известно, какие ресурсы расходуются, перечислить же не трудно.
А ты хернёй маешся... Намёки какие-то намекаешь.
Digitman (2004-12-29 14:54:00) [12]
> DiamondShark © (29.12.04 14:52) [25]
тем что [13] и [18] не вяжутся пока никак
DiamondShark (2004-12-29 14:52:00) [13]
> Digitman © (29.12.04 14:36) [23]
Чем тебе приведённый пример не нравится?
Digitman (2004-12-29 14:43:00) [14]
> msgipss (29.12.04 13:31) [17]
поп поводу иниц-ции данных, требуемых для работы трэда, придерживаюсь мнения. что в большинстве из ряда случаев ту самую иниц-цию разумней всего выполнять непосредственно в конструирующем методе трэда, т.е.
constructor TMyThread.Create(..)
begin
// .. здесь ..
inherited Create(..);
end;
следует лишь осознавать факт, что констр.метод исполняется в контексте вызывающего трэда, а посему все то что подразумевается под ".. здесь ..", будет исполненно именно в контексте вызывающего трэда
Digitman (2004-12-29 14:36:00) [15]
> DiamondShark © (29.12.04 14:27) [21]
> Иди в пень
Сударь, ты - хам. Твердолобый причем. Смысл твердолобости еще понятен, но хамства - увы .. кажется, дискуссия не выходила пока за рамки ...
Тебе был простейший намек (вовсе не подкол !) - приведи конкретныефакты (пусть даже по своей ситуации), а не домыслы, коих у всех у нас достаточно !
Суслик (2004-12-29 14:36:00) [16]
> constructor TMyThread.Create;
> begin
> inherited Create(true); // создаём в "подвешенном" состоянии
> // инициализация
> Resume;
> end;
в рамках дельфи6 (может и более ранних) делать resume в конструкторе не есть хорошо: если поток отработает очень быстро, то долго можно ошибки искать. Деталей не помню, но возможно, что такое может быть при FreeOnTerminate = true. А может и нет (не помню). В любом случае в рамках d6 можно написать
constructor TMyThread.Create;
begin
inherited Create(false); // создаём в "подвешенном" состоянии
// инициализация
end;
разницы никакой, т.к. все равно resume в aftercontruction будет.
-----------------
По поводу многоликости сервиса, поддерживаю Акуличева. Он привел реальный пример.
DiamondShark (2004-12-29 14:27:00) [17]
> это отолько твое imho ?
Имеешь другое ho -- излагай. А не фразочками бросайся.
> оперируешь опять же своим imho, а не фактами
Иди в пень. Я тебе пример привёл. Реального продукта.
Digitman (2004-12-29 14:16:00) [18]
> Собственно, доп.ресурсы -- это ресурсы на копию процесса
это отолько твое imho ?
> ресурсы, требуемые на исполнение прикладной задачи в несколько
> раз превышают ресурсы на создание процесса
оперируешь опять же своим imho, а не фактами
Ы ?
> А усложнение может обойтись дороже
А чесать репу насчет потенциального расширения функц-ти будущего сервиса, согласись уж, нужно вовсе не тогда, когда все уже слеплено-продано-впарено и денюжки за это оплаченные съедены-пропиты до копейки, а именно тогда когда верстается и утверждается ТЗ (неважно в каком виде)
Ку ?
DiamondShark (2004-12-29 14:04:00) [19]
> А если мне нужно подождать с выполнением Execute (например
> подготовить внутренние структуры), я в начале метода Execute
> пишу код.
Лучше в конструкторе:
constructor TMyThread.Create;
begin
inherited Create(true); // создаём в "подвешенном" состоянии
// инициализация
Resume;
end;
А если подготовкой занимается другой поток, то почему бы просто не создавать новый поток, пока всё не готово?
DiamondShark (2004-12-29 13:54:00) [20]
> + .. но требовать при этом от системы ощутимые доп.ресурсы
Собственно, доп.ресурсы -- это ресурсы на копию процесса.
В приведённом примере ресурсы, требуемые на исполнение прикладной задачи в несколько раз превышают ресурсы на создание процесса.
К чему эта ловля блох?
А усложнение может обойтись дороже.
В любом случае, как выяснилось, это вовсе даже не однозначно "не умно", а совсем даже предмет анализа и решения.
Ы?