2016-05-25 2 views
2

Я работаю над проектом, основное будущее которого будет периодически запускать один тип задачи async для каждого пользователя. Каждый пользователь сможет настроить задачу (работает ежедневно, еженедельно и т. Д. В указанное время). Также задача будет использовать некоторые данные, хранящиеся пользователем. Теперь я задаюсь вопросом, какой подход должен быть лучше: позволить пользователям создавать собственную PeriodicTask (например, используя ограниченную конечную точку) или создавать одиночную PeriodicTask (например, каждые 5 минут), которая будет перебирать всех пользователей и определять, должна ли быть задача в очереди или нет для текущего пользователя? Я думаю, что буду использовать AMPQ в качестве брокера.Сельдерей PeriodicTask для пользователя

+0

Минимальный промежуток времени в день? или он идет ниже этого? Если ежедневный минимум, можете ли вы установить однократное выполнение задачи для всех пользователей? Как задание будет выполняться в 12:00 AM независимо от того, когда пользователь создал его (если задача действительна в соответствии с установленным пользователем временем)? –

+0

Я отредактировал главное сообщение, чтобы быть более понятным - пользователь также сможет установить время, например, один пользователь может захотеть вызвать задачу в 19:30 вечера, а еще около 11:00 –

+1

. Я думаю, это зависит от того, сколько задержек допустимый при выполнении задачи. Если 5 минут терпимы, вы можете использовать подход с одной задачей. Если задержка не подходит в вашем случае, вы должны выполнить отдельную задачу для каждого пользовательского подхода. –

ответ

1

Планировщик периодических заданий в сельдерее не предназначен для обработки тысяч запланированных задач, поэтому с точки зрения производительности гораздо лучше решить одну задачу, которая выполняется на наименьшем интервале (например, если вы разрешаете пользователю осуществлять ежедневную, еженедельную , ежемесячно - работает задача ежедневно достаточно)

такого подход и более стабильный - каждый раз, когда изменения в расписании, все расписания записи перезагружается

плюса является более безопасным, потому что вы не подвергать или использовать любой внутренний механизмы для выполнения задач

Смежные вопросы