Здравствуйте!
Есть каркас консольного многопоточного приложения, построенный с помощью модуля pthreads. Мне нужно в каждом потоке иметь возможность использовать API битрикса. Однако не получается))
В консоли отображается ошибка segmentation fault. Возникает эта ошибка при вызове каких то методов из API.
Каких именно - вычислить не смог. Сначала думал, что дело в экземпляре подключения к БД, ну типа в другом потоке оно не доступно. Но это оказалось не так. Некоторые статичные методы работают нормально (точно не помню, какие, кажется из CUtil что-то работало). Некоторые статичные не работают. Если передать $DB напрямую в поток, то $DB->Query работает.
Такое ощущение, что надо делать в каждом потоке require, но так тоже не работает.
Вопрос - может есть вариант как то проинициализировать битрикс без кучи глобальных переменных и подтягивания кучи ненужных модулей? По сути мне нужен только API для работы с инфоблоками и highload-блоками.
Ну или может есть пример какой нибудь, как в многопоточном режиме использовать битрикс?
Есть каркас консольного многопоточного приложения, построенный с помощью модуля pthreads. Мне нужно в каждом потоке иметь возможность использовать API битрикса. Однако не получается))
В консоли отображается ошибка segmentation fault. Возникает эта ошибка при вызове каких то методов из API.
Каких именно - вычислить не смог. Сначала думал, что дело в экземпляре подключения к БД, ну типа в другом потоке оно не доступно. Но это оказалось не так. Некоторые статичные методы работают нормально (точно не помню, какие, кажется из CUtil что-то работало). Некоторые статичные не работают. Если передать $DB напрямую в поток, то $DB->Query работает.
Такое ощущение, что надо делать в каждом потоке require, но так тоже не работает.
Вопрос - может есть вариант как то проинициализировать битрикс без кучи глобальных переменных и подтягивания кучи ненужных модулей? По сути мне нужен только API для работы с инфоблоками и highload-блоками.
Ну или может есть пример какой нибудь, как в многопоточном режиме использовать битрикс?