kombu icon indicating copy to clipboard operation
kombu copied to clipboard

Fix issue with Celery control signals not being received after the 2nd time.

Open rogerhu opened this issue 11 years ago • 8 comments

There are two issues with kombu/common.py that need to be fixed with this PR. First, the code attempts to avoid declaring exchanges more than once. The problem is that Celery control signals leverage the auto_delete flag, which will delete exchanges when there are no more messages. The other issue appears that the exchanges are not being bound to any channels.

  1. Avoid trying to cache entities that have auto_delete=True (i.e. Celery control signals) -- reverts back to original behavior in v3.0.18.

  2. Bind the entity if it currently is not bound.

rogerhu avatar Jun 18 '14 23:06 rogerhu

Build failures seem unrelated.

rogerhu avatar Jun 19 '14 00:06 rogerhu

We need to be able to cache durable queue declarations, otherwise transient messaging will be dead slow, why did you re-enable durable if it was auto_delete you wanted?

ask avatar Jun 20 '14 14:06 ask

I simply reverted the change from the last release. I can change to only disable onauto delete.

rogerhu avatar Jun 20 '14 14:06 rogerhu

Updated.

rogerhu avatar Jun 20 '14 14:06 rogerhu

Thanks! Merged into master and 3.0. Are you sure it still works even if caches transients?

ask avatar Jun 20 '14 15:06 ask

I do not. I was only focused on fixing the issue with the Celery control signals.

rogerhu avatar Jun 20 '14 15:06 rogerhu

Apparently the problem didn't go away since I only put it on the exchange and not the queue: https://github.com/celery/kombu/pull/374

rogerhu avatar Jun 24 '14 18:06 rogerhu

@rogerhu if you are still active, and if this issue is still present, could you rebase?

dralley avatar Mar 06 '18 04:03 dralley