let post_save signal handle thread_id, otherwise broadcast messages will all have same thread_id