Odoo Help

Welcome!

This community is for beginners and experts willing to share their Odoo knowledge. It's not a forum to discuss ideas, but a knowledge base of questions and their answers.

0

Cannot write to database while cron job is running

By
Wilbert Tan
on 2/2/16, 3:29 AM 412 views

Dear guys,

I have a scheduler ( ir.cron ) that runs a function that will send email to some users.

Basically, everytime my code send the email to the user, it will write to each object ( email_sent = True ) so that the next time the scheduler run it won't send email to that user again.

But when I check, the database will only be written after the scheduler has finished running( All emails has been sent )

I need it to write to database everytime the email is sent to each user.

Anyone know how to do this?

1

Atul Arvind

--Atul Arvind--
1854
| 3 3 5
India
--Atul Arvind--

Hello, 

I am odoo Enthusiast/Consultant from Baroda, Gujarat, India. Working with odoo from v5 to v9 and other opensource technology since 4+ years. Having Strong Expertise in

Requirement gathering & Gap Analysis

Odoo Development

Odoo Customization

Odoo Training

Odoo Integration

Server Administration

Odoo Migration

Implementation

I am also active on StackOverflow.

or 


Atul Arvind
On 2/2/16, 6:51 AM

In order to save the save the data between the scheduler run you can use cr.commit() below the code of mail send.

Or

in mail.mail object's send method you can pass auto_commit to True. Here is a sample code

self.pool.get('mail.mail').send(cr, uid, mail_ids, auto_commit=True, raise_exception=False, context=context)
0
Wilbert Tan
On 2/2/16, 9:45 PM

Hi Atul, I can't comment on your submission ( not enough karma ) .

And btw, using cr.commit() actually works. But from what from what I read, it is actually not recommended to be used.

Refer here : https://www.odoo.com/forum/help-1/question/what-is-the-cr-commit-risk-how-to-safe-db-write-60885


I haven't tried the auto_commit = True as I am using ir.mail_server object to send email. Will try later.


Thank you !


did you resolved it?

Logicious
on 2/9/16, 8:02 AM

@Logicious. sorry late reply. Yes I solved it using cr.commit()

Wilbert Tan
on 3/1/16, 4:41 AM

Your Answer

Please try to give a substantial answer. If you wanted to comment on the question or answer, just use the commenting tool. Please remember that you can always revise your answers - no need to answer the same question twice. Also, please don't forget to vote - it really helps to select the best questions and answers!

About This Community

This community is for professionals and enthusiasts of our products and services. Read Guidelines

Question tools

1 follower(s)

Stats

Asked: 2/2/16, 3:29 AM
Seen: 412 times
Last updated: 3/1/16, 4:58 AM