2016-04-22 2 views
0

Какой лучший (более простой, быстрый, элегантный) способ выполнять работу каждую неделю?Делайте работу каждую неделю

Мне нужно выполнять работу каждую неделю, но для каждого пользователя недели считаются с даты регистрации пользователя.

Например,

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

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

Задача проста, как приращение поля в базе данных.

Имейте в виду, что я использую структуру Laravel, решение должно быть «элегантным» в контексте рамки Laravel.

+0

Я думаю, вам нужно создать пользовательский cronjob для каждого пользователя. Существует множество учебников о том, как создавать php cronjobs, если вам нужна помощь в этом. – treegarden

+0

@treegarden Возможно ли это, поскольку у него могут быть тысячи пользователей. А о производительности? –

+5

Вы можете запускать один cronjob каждый день - просто проверьте его в понедельник для пользователей, которые зарегистрировались по понедельникам и так далее. Хотя при условии, что он увеличивает поле в базе данных, вам действительно нужно? Не могли бы вы уйти с повторным вычислением значения, когда это было необходимо? – andrewsi

ответ

0

Я решил создать запланированную задачу, используя Laravel Task Scheduling.

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

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