Code

Opened 4 years ago

Closed 4 years ago

Last modified 2 years ago

#14050 closed Uncategorized (invalid)

Signals for transaction commit/rollback

Reported by: Ask Solem <ask@…> Owned by: nobody
Component: Database layer (models, ORM) Version: 1.2
Severity: Normal Keywords:
Cc: Triage Stage: Unreviewed
Has patch: no Needs documentation: no
Needs tests: no Patch needs improvement: no
Easy pickings: no UI/UX: no

Description

Some users of django-celery have the problem of publishing references to
database state that has not yet been commited.

E.g:

def add_user(request):

user = User.objects.create(...)
# Import the users address book contacts
import_contacts.delay(user.pk)

The proposed solution is to add a way to delay these calls until the transaction is committed:

from djcelery import on_transaction_commit

def add_user(request):

user = User.objects.create(...)
on_transaction_commit(import_contacts.delay, user.pk)

This doesn't seem very easy to accomplish, as I can't see any mechanism
to hook into commit/rollback. Do you think it could be possible
to add new signals for this?

Attachments (0)

Change History (2)

comment:1 Changed 4 years ago by Ask Solem <ask@…>

  • Needs documentation unset
  • Needs tests unset
  • Patch needs improvement unset
  • Resolution set to invalid
  • Status changed from new to closed

Formatting is broken, resubmitting :(

comment:2 Changed 2 years ago by ybon

  • Easy pickings unset
  • Severity set to Normal
  • Type set to Uncategorized
  • UI/UX unset

The valid thread is on #14051.

Add Comment

Modify Ticket

Change Properties
<Author field>
Action
as closed
as The resolution will be set. Next status will be 'closed'
The resolution will be deleted. Next status will be 'new'
Author


E-mail address and user name can be saved in the Preferences.

 
Note: See TracTickets for help on using tickets.