Need help understanding signals

  1. Does signals communicate between processes?

I have coded separate apps (a log parser which puts data into database, and a web UI) in a Django project, I previously used unix signal to do very primitive IPC and I want to change that, but from my tests one process doesn’t trigger signal in another process, is this not what Django signals are for?

  1. Can app use signals defined in different app?

e.g. app2 does

from app1 import signals
signals.custom_signal.send(........)
  1. Can I pass None as sender in .send()

No, it is not. Signals have a relatively limited usefulness within Django.

See the thread at Is this a good use case for the `post_save` signal? for a more detailed discussion about the usage and value of signals. I would also suggest you read Django Anti-Patterns: Signals | Lincoln Loop for a well-written opinion on this topic - an opinion with which I agree.

This would be the only situation in which I would use them, and then, only if that other app was written by a third-party.

Thanks… the “helps decoupled applications get notified when actions occur elsewhere in the framework” made me thought it is a IPC framework, I will have to look for something else.