|
|
|
Thread vs OLE
|
|||
|---|---|---|---|
|
#18+
wolverin DmSer, не получится, COM сервер кассы определяет последовательность методов, со своей то очередью понятно что можно хоть как. Размещайте задание в очередь только после того, как известны все необходимые данные для печати чека, в том числе все строки, скидки, ИНН, тэги и т.д. Что тут может не получиться? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 11.12.2020, 13:00 |
|
||
|
Thread vs OLE
|
|||
|---|---|---|---|
|
#18+
DmSer, чем проще, тем лучше, в нынешних реалиях конечно не так критично, но создавать и отслеживать несколько (не менее 3х - n касс) очередей n+1 потоками с количеством записей порядка 2-3 тысяч имхо не лучшая идея. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 11.12.2020, 13:03 |
|
||
|
Thread vs OLE
|
|||
|---|---|---|---|
|
#18+
DmSer, на атол.ру вон очереди касс сделали - год с ними бился чтобы геморой с очередями исправили, даже деньги частично вернули, один фиг нет нет да валится в таймаут чеки. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 11.12.2020, 13:07 |
|
||
|
Thread vs OLE
|
|||
|---|---|---|---|
|
#18+
wolverin единственно непонятно с очередью COM - чек это последовательный вызов около 5 методов, они и в очереди будут в том же порядке или перемешаются в потоках... COM-обеспечит атомарность отдельного вызова, если сервер не поддерживает мультипоточность но если сервер не может нормально организовать отдельную задачу, понятно что придётся делать свою синхронизацию вызова этих 5 методов - для этого вполне хватит критической секции без исходников сервера не попробуешь, не узнаешь PS: см ещё авторПравило 2: STA Потокам нужен цикл обработки сообщений. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 11.12.2020, 13:56 |
|
||
|
Thread vs OLE
|
|||
|---|---|---|---|
|
#18+
wolverin, если я правильно понимаю саму задачу, то сервер должен по сути поддерживать создание транзакции, её заполнение и отправку вроде бы тут ничего такого криминального быть не должно, если он объектами оперирует если делать как доктор прописал, не опираясь на знание внутренней реализации (чего COM от нас и требует) 1. что бы не грузить главный поток и не наткнуться на косяки VCL, в идеале нужно создать свой с COINIT_APARTMENTTHREADED, создать в нём объект и запустить обработку петли сообщений 2. в остальных местах использовать отмаршаленный указатель, прикрыв косую логику где надо критическим секциями 3. если уж совсем накипит, то слать разработчикам гневную петицию с указанием их ошибок ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 11.12.2020, 14:14 |
|
||
|
Thread vs OLE
|
|||
|---|---|---|---|
|
#18+
wolverin очевидно - очередь за которой не нужно следить, намного проще. wolverin единственно непонятно с очередью COM - чек это последовательный вызов около 5 методов, они и в очереди будут в том же порядке или перемешаются в потоках... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 11.12.2020, 14:28 |
|
||
|
Thread vs OLE
|
|||
|---|---|---|---|
|
#18+
Не рекомендую обращаться к объекту из разных потоков. сделайте один поток и очередь чеков, Ваш поток занимается только тем, что передает чек в кассу, и записывает результат по этому чеку в очередь. Ставьте ваш чек в очередь и ждите результата. Если надо какой-то чек в приоритете - организуйте приоритетную постановку в очередь, делов-то... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 11.12.2020, 23:59 |
|
||
|
|

start [/forum/topic.php?fid=58&msg=40026825&tid=2037787]: |
0ms |
get settings: |
8ms |
get forum list: |
10ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
53ms |
get topic data: |
10ms |
get forum data: |
3ms |
get page messages: |
51ms |
get tp. blocked users: |
1ms |
| others: | 231ms |
| total: | 373ms |

| 0 / 0 |
