16.
У меня есть модель "whatsapp.account" с методом get_chat_history (для получения существующих сообщений).
Мне нужно запускать этот метод когда запускается оду. При этом у меня есть контроллер, где приходят новые сообщения, мне нужно установить флаг что пока история не загрузиться, новые сообщения не добавлять.
Каким методом я могу это реализовать?
А как вьі запускаете get_chat_history при старте оду?
Так мне это и нужно сделать, я не знаю как это сделать Я это и спрашиваю
Ааа, у нас бьіла та же задача.... Можно кроной, или смотреть какие файли стартуют при запуске, и попробовать подкинуть туда.
Я знаю способ через runner, но вот как в таком случае сделать флаг что бы новые сообщения не добавлялись пока история не загрузиться
тут самому интересно....
Скорее всего никак, там в ядре Odoo жестко все зашито. Если только через встроенный одушный cron
а почему именно при старте odoo? почему именно такое ограничение?
может post_load hook поможет
Что бы сразу загрузить историю сообщений и потом получать новые сообщения.
Эти хуки работают при установке модуля, к не загрузки оду
post_load срабатывает при каждом запуске. после загузки модулей. Вот например сообщение из логов: 2024-08-06 06:06:07,527 18860 INFO asa-new odoo.modules.loading: loading 200 modules... 2024-08-06 06:06:08,282 18860 INFO asa-new odoo.addons.queue_job.post_load: Apply Request post_load модуля queue_job срабатывает
А хорошо, посмотрю, спасибо
https://odoo-development.readthedocs.io/en/latest/dev/hooks/post_load.html#example То что нужно! Ещё и controller можно импортировать после того как всё сделал
Большое спасибо за подсказку. То что нужно!
Решил проблему так. Просто импортирую функцию и вызываю её. history_loaded = False def set_history_loaded(): global history_loaded history_loaded = True
Обсуждают сегодня