Обработка поступающих вложений doc

Тема в разделе "Lotus - Программирование", создана пользователем anna, 2 мар 2015.

  1. anna

    anna Lotus team
    Lotus team

    Регистрация:
    3 июн 2014
    Сообщения:
    304
    Симпатии:
    8
    Уважаемый all! Я понимаю, что ворд на сервере это плохо, но пока увы. Проблема в том, что никак не удается наладить четкую обработку на стороне сервера - открыли ворд - первый файл обработали - n-ный файл обработал и- закрыли ворд, ждем пока новые файлы придут.
    Что-то ломается после первого прохода, приходится его убивать taskkill и запускать обработку по новой. Это на сервере, на клиенте все ок.
    И да, лотусскрипт, на жаву переписывать 3000 строк кода нет желания, нормально будем реализовывать новую уже схему (я надеюсь, что сделаем интеграцию хотя бы через xml).
    Как бы минимизировать taskkill и количество запусков ворда?
     
  2. lmike

    lmike нет, пердело совершенство
    Команда форума Lotus team

    Регистрация:
    27 авг 2008
    Сообщения:
    6.073
    Симпатии:
    299
    и не надо - делается рапер, для основных манипуляций
    когда-то это делать придется (почти в принудительном порядке) ибо ИБМ забросила LS
    попытаться не закрывать Application и искать его по GetObject, но для агентов, кмк, анриал (агент похачит хендлы)...
    если внешним кодом только, крутить в цикле WS к-л, кот. по событию в ФС будет обрабатывать виндятскими примочками файло
    как пример вот такая шняжка
    а вопщем - POI/XML + veloicity и никаких вордей :)
    можно еще jasperreports заюзать
     
  3. lmike

    lmike нет, пердело совершенство
    Команда форума Lotus team

    Регистрация:
    27 авг 2008
    Сообщения:
    6.073
    Симпатии:
    299
    вот для систем типа В2К3
     
  4. erdi

    erdi Well-Known Member

    Регистрация:
    20 авг 2008
    Сообщения:
    261
    Симпатии:
    36
    пойдите от обратного...перед обработкой убивайте все процессы word, если они остались от прошлой обработки. Т.,о перед свой обработкой вы точно будете гарантировать что остатков word-a нет на машине и они не приведут к поломке текущей обработки
    Код (LotusScript):
    Sub CloseMSWord()
        On Error GoTo ErrH
        Dim objs As Variant
        Dim strSQL As String
        Dim strWMI As String
        strWMI = "winmgmts:"
        strSQL = "Select * From Win32_Process "
        strSQL = strSQL & "where Name = 'WINWORD.EXE'"
        Set objs = GetObject(strWMI).ExecQuery(strSQL)
        ForAll obj In objs
            obj.Terminate
        End ForAll
    Quit:
        Exit Sub
    ErrH:
        Error Err, Error$ & " in " & GetThreadInfo(1) & " line " & CStr(Erl)
    End Sub
     
    #4 erdi, 3 мар 2015
    Последнее редактирование модератором: 3 мар 2015
    2 пользователям это понравилось.
  5. anna

    anna Lotus team
    Lotus team

    Регистрация:
    3 июн 2014
    Сообщения:
    304
    Симпатии:
    8
    А зачем весь этот обвес, если в mail-in базу будет просто попадать xml? В день ~200 штук по 4кб. Если, конечно, устраивать конвейер на сотни тысяч файликов.....
     
  6. anna

    anna Lotus team
    Lotus team

    Регистрация:
    3 июн 2014
    Сообщения:
    304
    Симпатии:
    8
    Рапер? Это что?
     
  7. anna

    anna Lotus team
    Lotus team

    Регистрация:
    3 июн 2014
    Сообщения:
    304
    Симпатии:
    8
    На что может так ругаться?
     
  8. lmike

    lmike нет, пердело совершенство
    Команда форума Lotus team

    Регистрация:
    27 авг 2008
    Сообщения:
    6.073
    Симпатии:
    299
    @erdi, иногда ;) желательно еще и подождать
    этим англицизмом (wrapper - обертка) я назвал набор из шаблонов программирования типа Адаптер и ему аналогичные
    [DOUBLEPOST=1425373264,1425373196][/DOUBLEPOST]
    именно на недостаток памяти процесса ;)
     
  9. anna

    anna Lotus team
    Lotus team

    Регистрация:
    3 июн 2014
    Сообщения:
    304
    Симпатии:
    8
    [DOUBLEPOST=1425373264,1425373196][/DOUBLEPOST]
    Какой памяти? вроде все свободно: на диске много и оперативка пустая
     
  10. lmike

    lmike нет, пердело совершенство
    Команда форума Lotus team

    Регистрация:
    27 авг 2008
    Сообщения:
    6.073
    Симпатии:
    299
    ни задачи ни реализации я не видел ;)
    дополнение по раперу - все вызовы типа CreateObject будут заменены на соответ. класс рапера
    а его инстанс будет подменять используемые методы на свою реализацию
    [DOUBLEPOST=1425376133,1425375940][/DOUBLEPOST]
    какбэ домина использует "свою" память в своем процессе
    у ЛС ограничения на стэк и хип - все вместе 2Гб (32бит и т.п.), вот сколько осталось для передачи КОМе - уже вопрос
    [DOUBLEPOST=1425376313][/DOUBLEPOST]короче - без кода и окружения невозможно понять суть ваших ошибок
     
Загрузка...

Поделиться этой страницей