|
![]() |
#1 |
Участник
|
|
|
![]() |
#2 |
Возьми свет!!!
|
Я же говорю, там очень много заморочек. Во первых у нити которую вы запускаете не должно вообще ничего быть такого связанного с вводом-выводом иначе она работает только до определенного шага, лучше написать сейчас попроще потом дописывать туда уже что-то, я именно так и делал, каждый раз запуская и проверяя отработает или нет.
Можно класс например проверить который у вас этот поток запускает, выполняется ли он точно на сервере, было у меня такое как-то. Можно даже попробовать что-то вставлять в таблицу и выяснить на каком шаге у вас прерывается работа серверной нити, я так делал. А вот клиентская нить, это вообще отдельная тема. Клиентское приложение если переключится с него, а потом снова попытаться включится - виснет.
__________________
Axapta 3.0 sp 5 Oracle ![]() Я могу взорвать вам мозг!!! |
|
|
За это сообщение автора поблагодарили: Logger (5). |
![]() |
#3 |
Участник
|
Цитата:
Сообщение от Murlin
![]() Я же говорю, там очень много заморочек. Во первых у нити которую вы запускаете не должно вообще ничего быть такого связанного с вводом-выводом иначе она работает только до определенного шага, лучше написать сейчас попроще потом дописывать туда уже что-то, я именно так и делал, каждый раз запуская и проверяя отработает или нет.
Можно класс например проверить который у вас этот поток запускает, выполняется ли он точно на сервере, было у меня такое как-то. Можно даже попробовать что-то вставлять в таблицу и выяснить на каком шаге у вас прерывается работа серверной нити, я так делал. А вот клиентская нить, это вообще отдельная тема. Клиентское приложение если переключится с него, а потом снова попытаться включится - виснет. ![]() Я там все перепроверил. Выше описано. Причина "нерабочести" потока не в том что я заставляю его писать в файл на диск. Он и без моих кастомизаций не работает. Не откликается на сообщения в EventLog. А если вручную на клиенте запустить, то откликается, то есть работает. И даже в файл на диск пишет. |
|
![]() |
#4 |
Участник
|
Всем добрый вечер
есть следующая проблема : есть пакетник который в порядке очереди обрабатывает некие запросы, хотелось бы эту последовательную очередь распараллелить но при работе пакетника ничего не происходит при запуске X++: t.run(classnum(MyClass), staticmethodstr(MyClass, MyMethod)); точно проверено : пакетник работает (обрамлял t.run логированием) делал логирование в самом методе MyMethod (тут люди писали что, возможно, валится где то на IO или еще на чем то) - метод вообще не вызывается подскажите куда рыть ? Последний раз редактировалось Omeo; 08.08.2013 в 19:45. |
|
![]() |
#5 |
Участник
|
В подтверждение слов trud-а приведу ссылку, в которой пишут, что thread не работает в пакете:
http://dynamics-ax.blogspot.ru/2010/...-vs-batch.html Когда я писал класс-наследник от RunbaseBatch, то для распараллеливания процессов делал проверку на то как работает класс. Если в пакете, то применял Batch Parallelism, если нет - threads. Вроде все работает в итоге. |
|
Теги |
sysevent, thread |
|
|