powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Delphi [игнор отключен] [закрыт для гостей] / Thread vs OLE
7 сообщений из 32, страница 2 из 2
Thread vs OLE
    #40026792
DmSer
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
wolverin
DmSer,

не получится, COM сервер кассы определяет последовательность методов, со своей то очередью понятно что можно хоть как.


Размещайте задание в очередь только после того, как известны все необходимые данные для печати чека, в том числе все строки, скидки, ИНН, тэги и т.д. Что тут может не получиться?
...
Рейтинг: 0 / 0
Thread vs OLE
    #40026795
Фотография wolverin
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
DmSer,

чем проще, тем лучше, в нынешних реалиях конечно не так критично, но создавать и отслеживать несколько (не менее 3х - n касс) очередей n+1 потоками с количеством записей порядка 2-3 тысяч имхо не лучшая идея.
...
Рейтинг: 0 / 0
Thread vs OLE
    #40026799
Фотография wolverin
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
DmSer,

на атол.ру вон очереди касс сделали - год с ними бился чтобы геморой с очередями исправили, даже деньги частично вернули, один фиг нет нет да валится в таймаут чеки.
...
Рейтинг: 0 / 0
Thread vs OLE
    #40026825
kealon(Ruslan)
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
wolverin
единственно непонятно с очередью COM - чек это последовательный вызов около 5 методов, они и в очереди будут в том же порядке или перемешаются в потоках...
всё зависит от корректности реализации сервера
COM-обеспечит атомарность отдельного вызова, если сервер не поддерживает мультипоточность
но если сервер не может нормально организовать отдельную задачу, понятно что придётся делать свою синхронизацию вызова этих 5 методов - для этого вполне хватит критической секции


без исходников сервера не попробуешь, не узнаешь

PS: см ещё авторПравило 2: STA Потокам нужен цикл обработки сообщений.
...
Рейтинг: 0 / 0
Thread vs OLE
    #40026830
kealon(Ruslan)
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
wolverin,

если я правильно понимаю саму задачу, то сервер должен по сути поддерживать создание транзакции, её заполнение и отправку
вроде бы тут ничего такого криминального быть не должно, если он объектами оперирует

если делать как доктор прописал, не опираясь на знание внутренней реализации (чего COM от нас и требует)

1. что бы не грузить главный поток и не наткнуться на косяки VCL, в идеале нужно создать свой с COINIT_APARTMENTTHREADED, создать в нём объект и запустить обработку петли сообщений

2. в остальных местах использовать отмаршаленный указатель, прикрыв косую логику где надо критическим секциями

3. если уж совсем накипит, то слать разработчикам гневную петицию с указанием их ошибок
...
Рейтинг: 0 / 0
Thread vs OLE
    #40026836
Фотография _Vasilisk_
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
wolverin
очевидно - очередь за которой не нужно следить, намного проще.
А для меня очевидно, что контролируемая очередь, на написание которой уйдет максимум 50 строк кода сильно проще
wolverin
единственно непонятно с очередью COM - чек это последовательный вызов около 5 методов, они и в очереди будут в том же порядке или перемешаются в потоках...
Конечно перемешаются. Что здесь непонятного?
...
Рейтинг: 0 / 0
Thread vs OLE
    #40027077
Cobalt747
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Не рекомендую обращаться к объекту из разных потоков.
сделайте один поток и очередь чеков,
Ваш поток занимается только тем, что передает чек в кассу, и записывает результат по этому чеку в очередь.

Ставьте ваш чек в очередь и ждите результата.
Если надо какой-то чек в приоритете - организуйте приоритетную постановку в очередь, делов-то...
...
Рейтинг: 0 / 0
7 сообщений из 32, страница 2 из 2
Форумы / Delphi [игнор отключен] [закрыт для гостей] / Thread vs OLE
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]