треде потом не смогу проконтролировать работу этого кода.(судя по примерам в инете)
Нет какого-то менеджера backgroud task?
Не принято Но кто ж вам запретит?
Дима CR&D
Бекграунд задачи - это достаточно интересная тема, и там есть достаточно много нюансов. Из готовых решений что позволят вам запускать задачи в бекграунде есть только OCA [queue_job](https://github.com/OCA/queue) - берете и используете. Но, то, ччто мне лично не нравиться в этом модуле, это что он не использует настоящих фоновых воркеров, а вместо этого раскидывает задачи по доступным HTTP воркерам, что не очень хорошо, и выглядит странновато. Server Action - Это не бекграунд задача, это просто действие, которое можно настроить с интерфейса оду, и выполнить при определенных условиях (крон, или как реакиция на какие-то изменения через base_automation). Но это не бекграунд задача. Насчет запуска в треде - запускать в треде можно, и проконтролировать тоже можно, но здесь все зависит от ваших потребностей и возможностей. Если просто запустить просто в треде какойто кусок кода, то он скорее всего выполниться в большинстве случаев адекватно, если сделана нормальная обработка ошибок в точке входа в тред, и главное не забыть запустить его в отдельной транзакции. Но здесь можгут быть нюансы в случаях когда например воркер отработал свои 8000 запросов и перезапускаеться оду. Если же нужно контролировать статус выполнения асинхронных задач и этих задач много и разных - нужно писать планировщик который и будет делать эту работу: управлять потоками, воркерами, очередями задач, и т. д. Достаточно интересная задача. Если интерестно, мы планируем написать свой фреймворк для асинхронных задач в Odoo с настоящими фоновыми воркерами, которые можно запустить на отдельной машине и при этом они будут работать с коружением Odoo. Так же скорее всего будет поддержка реализации воркеров на других технологиях (не обязательно оду и не обязательно python). Но это все требует времени, которого и так мало. Из альтернатив - видел попытки прикрутьть Celery к Odoo через XML-RPC, но это выглядит слишком странно (страшно), и не уверен в том что достаточно безопасно.
> мы планируем написать свой фреймворк для асинхронных задач в Odoo с настоящими фоновыми воркерами > видел попытки прикрутьть Celery к Odoo через XML-RPC, но это выглядит слишком странно (страшно) Так почему Ваша компания готова понести затраты на разработку аналога Celery? Чем Celery не угодил? Не нравиться читать чужой код и разбираться в документации Celery? Какая истинная причина?
Обсуждают сегодня