Skip to Content
เมนู
คุณต้องลงทะเบียนเพื่อโต้ตอบกับคอมมูนิตี้
คำถามนี้ถูกตั้งค่าสถานะ
2 ตอบกลับ
9072 มุมมอง

Hello Everyone, I wanted to some work in the background without blocking the UI in Odoo.

I have to send some data over API but if somehow network is not connected or the connection is a timeout, I wanted that work should pass to some function which will keep running in the background but without blocking the UI. 

If there are the number of tasks which are not able to pass over API all those work should be running in the background for some period of time like 1 hour. How can I make some tasks working in the background without blocking UI to do some other works?

อวตาร
ละทิ้ง
คำตอบที่ดีที่สุด

You can create new envirohnment and call your function with new env, it will not affect any thing front end.

Below is the code for create new Env-

new_env = odoo.api.Environment(self.cr, self.uid, self.context)
Define your object with new Env like below-
partner_obj = new_env['res.partner']
Then you can call any partner_object function which will not block your UI.
You can see many examples in odoo base addons.

อวตาร
ละทิ้ง
คำตอบที่ดีที่สุด

You can use threading technique. It will run the process in background and UI will not be blocked.

eg:-

import threading

def fn(self):

threaded_calculation = threading.Thread(target=YOUR_FN_NAME)
threaded_calculation.start()

อวตาร
ละทิ้ง
Related Posts ตอบกลับ มุมมอง กิจกรรม
3
ธ.ค. 22
3616
How to make sign up menu in website? แก้ไขแล้ว
2
เม.ย. 20
4538
1
เม.ย. 20
3488
2
มิ.ย. 19
5584
0
มิ.ย. 21
3340