odoo 使用协程,异步,gevent,打补丁
打补丁得时候需要在方法中实现,如果直接在外部调用猴子补丁,在odoo服务启动时,就会出现锁异常,会出现死锁,
错误的示范:
from odoo import api, fields, models
from dateutil.relativedelta import relativedelta
from ..controllers.cls_get_trans_info import SpiderTrans
from odoo import exceptions
import gevent
import logging
from gevent import monkey
monkey.patch_all() # 这是一个错误的示例
class ClassName(models.Model):
_name = 'model.name'
...
正确的示范:
from odoo import api, fields, models
from dateutil.relativedelta import relativedelta
from ..controllers.cls_get_trans_info import SpiderTrans
from odoo import exceptions
import gevent
import logging
from gevent import monkey
monkey.patch_all() # 这是一个错误的示例
class ClassName(models.Model):
_name = 'model.name
field_name= fields.Char()
def func(self):
monkey.patch_all() #猴子补丁需要在该位置调用
本文来自博客园,作者:那时一个人,转载请注明原文链接:https://www.cnblogs.com/qianxunman/p/12178911.html