Использование времени в качестве идентификатора отправки не будет работать. Вопрос не в том, является ли ваша среда многопользовательской или нет. Будет ли код, который связывает сигналы, импортирован более одного раза.
Скажем, ваш модуль был импортирован дважды с интервалом в 5 секунд. Вы фактически сделали следующее.
my_signal.connect(my_function, dispatch_uid=1332407342.51)
my_signal.connect(my_function, dispatch_uid=1332407352.51)
Ваш сигнал был связан дважды с разными идентификаторами отправки. Эта структура проекта по умолчанию для Django 1.3 и более ранних версий позволяет осуществлять двойной импорт, поскольку модули часто можно импортировать как project.my_app.module
и my_app.module
.
Если вы выберете соглашение, подобное my_app.models.function_name
, как предлагает Дмитрий, то при втором импорте модуля сигнал не будет подключен дважды, поскольку идентификатор отправки не изменился. Вы не должны повторно использовать один и тот же идентификатор отправки для регистрации различных функций обратного вызова с одним и тем же сигналом.