- 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?
- Can app use signals defined in different app?
e.g. app2 does
from app1 import signals
signals.custom_signal.send(........)
- 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.