· 2 years ago · Mar 08, 2023, 01:10 PM
1import redis
2from odoo import models, fields, api
3
4class PartnerCache(models.Model):
5 _inherit = 'res.partner'
6
7 @api.model
8 def get_from_cache(self, key):
9 r = redis.Redis(host='localhost', port=6379, db=0)
10 return r.get(key)
11
12 @api.model
13 def set_to_cache(self, key, value):
14 r = redis.Redis(host='localhost', port=6379, db=0)
15 r.set(key, value)
16
17 @api.model
18 def search(self, args, offset=0, limit=None, order=None, count=False):
19 # Cek apakah data sudah di-cache atau belum
20 cache_key = str(args) + str(offset) + str(limit) + str(order) + str(count)
21 cached_data = PartnerCache.get_from_cache(cache_key)
22 if cached_data:
23 return cached_data
24
25 # Jika tidak ada di-cache, panggil fungsi asli dan simpan ke Redis cache
26 data = super(ResPartner, self).search(args, offset, limit, order, count)
27 PartnerCache.set_to_cache(cache_key, data)
28
29 return data
30
31
32
33
34
35