OCA / queue

Asynchronous Job Queue
GNU Affero General Public License v3.0
175 stars 451 forks source link

[IMP] Add queue_job.keep_context ir.config_parameter #613

Closed amh-mw closed 3 months ago

amh-mw commented 8 months ago

When this parameter is set, queue_job always preserves the entire context. This honors the principle of least surprise, in that a developer can easily convert a record.method() call to record.with_delay().method() with the expectation that it will actually execute the same, simply at a later time.

Fixes #406.

OCA-git-bot commented 8 months ago

Hi @guewen, some modules you are maintaining are being modified, check this out!

amh-mw commented 8 months ago

Just for general amusement, abridged from code that I wrote to import over a decade of users and data from a legacy system:

self.with_context({
    'bus_no_notify': True, # custom
    'calendar_event_create_no_constrain': True, # custom
    'mail_auto_subscribe_no_notify': True, # odoo
    'mail_create_nolog': True, # odoo
    'mail_create_nosubscribe': True, # odoo
    'mail_notrack': True, # odoo
    'no_geo_complete': True, # custom
    'no_mail_to_attendees': True, # odoo
    'no_reset_password': True, # odoo
    'quickbooks_no_prepare': True, # custom
    'tracking_disable': True # odoo
}).with_delay(...)._cron_migrate()

It is really important that context is preserved or all kinds of side effects are triggered.

amh-mw commented 8 months ago

@acsonefho @florian-dacosta Any interest in reviewing this queue_job.keep_context pull request?

sbidoul commented 8 months ago

@amh-mw If my memory is correct, you should rather port https://github.com/OCA/queue/tree/14.0/queue_job_context from 14 to 15. In 16 it is not necessary anymore as it is the default.

amh-mw commented 8 months ago

It looks like queue_job_context uses a hardcoded list of context keys that I would have to inherit the class and override?

https://github.com/OCA/queue/blob/089eb3ef9a9c9210384711b6e107433138f9809c/queue_job_context/models/base.py#L12

I don't prefer that. I just want to flip a switch and get all the context.

github-actions[bot] commented 4 months ago

There hasn't been any activity on this pull request in the past 4 months, so it has been marked as stale and it will be closed automatically if no further activity occurs in the next 30 days. If you want this PR to never become stale, please ask a PSC member to apply the "no stale" label.